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 合并文件的具体实例
Aug 08 Python
Python中标准模块importlib详解
Apr 16 Python
Ubuntu16.04/树莓派Python3+opencv配置教程(分享)
Apr 02 Python
Python中函数参数调用方式分析
Aug 09 Python
python使用adbapi实现MySQL数据库的异步存储
Mar 19 Python
Python中新式类与经典类的区别详析
Jul 10 Python
python pandas cumsum求累计次数的用法
Jul 29 Python
使用python实现滑动验证码功能
Aug 05 Python
Python API自动化框架总结
Nov 12 Python
python实现从ftp服务器下载文件
Mar 03 Python
PyCharm 光标变成黑块的解决方式
Feb 06 Python
Python并发编程实例教程之线程的玩法
Jun 20 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中文件缓存转内存缓存的方法
2011/12/06 PHP
PHP操作文件的一些基本函数使用示例
2014/11/18 PHP
网页上的Javascript编辑器和代码格式化
2010/04/25 Javascript
JQuery选择器特辑 详细小结
2012/05/14 Javascript
jQuery中addClass()方法用法实例
2015/01/05 Javascript
javaScript中Math()函数注意事项
2015/06/18 Javascript
向JavaScript的数组中添加元素的方法小结
2015/10/24 Javascript
基于jQuery实现网页打印功能
2015/12/01 Javascript
JavaScript+html5 canvas绘制的小人效果
2016/01/27 Javascript
Kendo Grid editing 自定义验证报错提示的解决方法
2016/11/18 Javascript
JavaScript 事件对内存和性能的影响
2017/01/22 Javascript
基于JS代码实现简单易用的倒计时 x 天 x 时 x 分 x 秒效果
2017/07/13 Javascript
jQuery实现简单的回到顶部totop功能示例
2017/10/16 jQuery
详解JS转换数值函数Number()、parseInt()、parseFloat()
2018/08/24 Javascript
详解如何制作并发布一个vue的组件的npm包
2018/11/10 Javascript
使用post方法实现json往返传输数据的方法
2019/03/30 Javascript
10个最受欢迎的 JavaScript框架(推荐)
2019/04/24 Javascript
详解vue-cli中使用rem,vue自适应
2019/05/06 Javascript
vue+elementUI 复杂表单的验证、数据提交方案问题
2019/06/24 Javascript
[02:48]DOTA2英雄基础教程 拉席克
2013/12/12 DOTA
python生成器generator用法实例分析
2015/06/04 Python
通过数据库对Django进行删除字段和删除模型的操作
2015/07/21 Python
对python当中不在本路径的py文件的引用详解
2018/12/15 Python
Python爬取破解无线网络wifi密码过程解析
2019/09/17 Python
python如何实现不用装饰器实现登陆器小程序
2019/12/14 Python
完美解决python针对hdfs上传和下载的问题
2020/06/05 Python
HTML5中新标签和常用标签详解
2014/03/07 HTML / CSS
申报职称专业技术个人的自我评价
2013/12/12 职场文书
学生自我鉴定
2013/12/18 职场文书
公司活动策划方案
2014/01/13 职场文书
食品安全工作实施方案
2014/03/26 职场文书
公务员试用期满考核材料
2014/05/22 职场文书
班级体育活动总结
2014/07/05 职场文书
个人先进事迹材料范文
2014/12/29 职场文书
CSS中float高度塌陷问题的四种解决方案
2022/04/18 HTML / CSS
Spring Boot接口定义和全局异常统一处理
2022/04/20 Java/Android