Python爬取商家联系电话以及各种数据的方法


Posted in Python onNovember 10, 2018

上次学会了爬取图片,这次就想着试试爬取商家的联系电话,当然,这里纯属个人技术学习,爬取过后及时删除,不得用于其它违法用途,一切后果自负。

首先我学习时用的是114黄页数据。

下面四个是用到的模块,前面2个需要安装一下,后面2个是python自带的。

import requests
from bs4 import BeautifulSoup
import csv
import time

然后,写个函数获取到页面种想要的数据,记得最后的return返回一下,因为下面的函数要到把数据写到csv里面。

def get_content(url,data=None):
 header = {
  'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
  'Accept-Encoding': 'gzip, deflate',
  'Accept-Language': 'zh-CN,zh;q=0.8',
  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.104 Safari/537.36',
 }
 r = requests.get(url, headers=header)
 soup = BeautifulSoup(r.content, 'html.parser')
 data = soup.body.find('div',{'id':'news_con'})
 ul = data.find('ul')
 lis = ul.find_all('li')
 pthons=[]

 for item in lis:
  rows=[]
  name= item.find('h4').string
  rows.append(name)
  tel = item.find_all("div")[2].string
  rows.append(tel)
  pthons.append(rows)
  time.sleep(1)
 return pthons

接着:把数据写到表格里面。我这里用到的是csv,方便阅览。

def write_data(data,name):
 file_name=name
 with open(file_name, "w", newline='') as csvfile:
  writer = csv.writer(csvfile)
  writer.writerow(["商铺名称", "联系电话"])
  writer.writerows(data)
  print('抓取完成')

最后就是执行这些函数:

if __name__ == '__main__':
 url = 'http://ty.114chn.com/CustomerInfo/Customers?cid=008004008&page=2'
 mydata = get_content(url)
 write_data(mydata,'phone.csv')

在这里我想到应该把url写成动态的,因为这里面有页数。让page写成循环自动+1,当然,可以在网页看到一共多少页。写个循环执行。就更完美了。

Python爬取商家联系电话以及各种数据的方法

以上这篇Python爬取商家联系电话以及各种数据的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python类和继承用法实例
Jul 07 Python
Python的MongoDB模块PyMongo操作方法集锦
Jan 05 Python
Python脚本实现12306火车票查询系统
Sep 30 Python
利用Python生成文件md5校验值函数的方法
Jan 10 Python
python查询mysql,返回json的实例
Mar 26 Python
django2.0扩展用户字段示例
Feb 13 Python
Python----数据预处理代码实例
Mar 20 Python
Python 等分切分数据及规则命名的实例代码
Aug 16 Python
Django实现基于类的分页功能
Oct 31 Python
python的scipy实现插值的示例代码
Nov 12 Python
python 字典item与iteritems的区别详解
Apr 25 Python
python随机打印成绩排名表
Jun 23 Python
Python中的取模运算方法
Nov 10 #Python
在Python中获取两数相除的商和余数方法
Nov 10 #Python
Python解决两个整数相除只得到整数部分的实例
Nov 10 #Python
从DataFrame中提取出Series或DataFrame对象的方法
Nov 10 #Python
pandas 数据归一化以及行删除例程的方法
Nov 10 #Python
python 重命名轴索引的方法
Nov 10 #Python
Pandas:Series和DataFrame删除指定轴上数据的方法
Nov 10 #Python
You might like
PHP实现多服务器session共享之NFS共享的方法
2007/03/16 PHP
[原创]效率较高的php下读取文本文件的代码
2008/07/02 PHP
php结合飞信 免费天气预报短信
2009/05/07 PHP
php中全局变量global的使用演示代码
2011/05/18 PHP
php入门学习知识点一 PHP与MYSql连接与查询
2011/07/14 PHP
PHP删除目录及目录下所有文件的方法详解
2013/06/06 PHP
php smarty模板引擎的6个小技巧
2014/04/24 PHP
php定时计划任务与fsockopen持续进程实例
2014/05/23 PHP
php项目中百度 UEditor 简单安装调试和调用
2015/07/15 PHP
PHP实现的mysql操作类【MySQL与MySQLi方式】
2017/10/07 PHP
ThinkPHP 在阿里云上的nginx.config配置实例详解
2017/10/11 PHP
php实现记事本案例
2020/10/20 PHP
fromCharCode和charCodeAt 方法
2006/12/27 Javascript
JavaScript入门教程(5) js Screen屏幕对象
2009/01/31 Javascript
用显卡加速,轻松把笔记本打造成取暖器的办法!
2013/04/17 Javascript
js动画效果制件让图片组成动画代码分享
2014/01/14 Javascript
JS实现从表格中动态删除指定行的方法
2015/03/31 Javascript
jQuery过滤HTML标签并高亮显示关键字的方法
2015/08/07 Javascript
js学习之----深入理解闭包
2016/11/21 Javascript
canvas基础绘制-绚丽倒计时的实例
2017/09/17 Javascript
angular写一个列表的选择全选交互组件的示例
2018/01/22 Javascript
利用d3.js力导布局绘制资源拓扑图实例教程
2019/01/08 Javascript
详解如何使用router-link对象方式传递参数?
2019/05/02 Javascript
Vue 中 a标签上href无法跳转的解决方式
2019/11/12 Javascript
[53:38]OG vs LGD 2018国际邀请赛淘汰赛BO3 第三场 8.26
2018/08/30 DOTA
Python 字符串定义
2009/09/25 Python
Python中的列表知识点汇总
2015/04/14 Python
Python中的rfind()方法使用详解
2015/05/19 Python
pytorch模型存储的2种实现方法
2020/02/14 Python
K最近邻算法(KNN)---sklearn+python实现方式
2020/02/24 Python
Python restful框架接口开发实现
2020/04/13 Python
奥地利时尚、美容、玩具和家居之家:Kastner & Öhler
2020/04/26 全球购物
服装设计专业毕业生推荐信
2013/11/09 职场文书
工伤事故赔偿协议书
2014/04/15 职场文书
离婚协议书怎么写(范本参考)
2014/09/30 职场文书
党员年度个人总结
2015/02/14 职场文书