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的Flask框架构建大型Web应用程序的结构示例
Jun 04 Python
浅谈flask截获所有访问及before/after_request修饰器
Jan 18 Python
运行django项目指定IP和端口的方法
May 14 Python
python3写的简单本地文件上传服务器实例
Jun 04 Python
详解Django+Uwsgi+Nginx的生产环境部署
Jun 25 Python
python tkinter界面居中显示的方法
Oct 11 Python
对python多线程中Lock()与RLock()锁详解
Jan 11 Python
python基于itchat模块实现微信防撤回
Apr 29 Python
使用python os模块复制文件到指定文件夹的方法
Aug 22 Python
Python求凸包及多边形面积教程
Apr 12 Python
详解向scrapy中的spider传递参数的几种方法(2种)
Sep 28 Python
Pycharm自动添加文件头注释和函数注释参数的方法
Oct 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简单静态页生成过程
2008/03/27 PHP
php多层数组与对象的转换实例代码
2013/08/05 PHP
PHP递归删除目录几个代码实例
2014/04/21 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
2016/09/30 PHP
php精度计算的问题解析
2019/06/21 PHP
jquery用offset()方法获得元素的xy坐标
2014/09/06 Javascript
js拖拽的原型声明和用法总结
2016/04/04 Javascript
JS实现图片局部放大或缩小的方法
2016/08/20 Javascript
js简单获取表单中单选按钮值的方法
2016/08/23 Javascript
jquery处理checkbox(复选框)是否被选中实例代码
2017/06/12 jQuery
node跨域请求方法小结
2017/08/25 Javascript
Bootstrap4如何定制自己的颜色和风格
2018/02/26 Javascript
npm全局模块卸载及默认安装目录修改方法
2018/05/15 Javascript
使用JS代码实现俄罗斯方块游戏
2018/08/03 Javascript
vue-cli 使用vue-bus来全局控制的实例讲解
2018/09/15 Javascript
Element-ui tree组件自定义节点使用方法代码详解
2018/09/17 Javascript
vue props对象validator自定义函数实例
2019/11/13 Javascript
vue实现户籍管理系统
2020/05/29 Javascript
[01:23]2014DOTA2国际邀请赛 球迷无处不在Ti现场世界杯受关注
2014/07/10 DOTA
[40:55]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#4Newbee VS Fnatic
2016/03/03 DOTA
python使用win32com在百度空间插入html元素示例
2014/02/20 Python
python服务器与android客户端socket通信实例
2014/11/12 Python
python+selenium+autoit实现文件上传功能
2017/08/23 Python
django-利用session机制实现唯一登录的例子
2020/03/16 Python
Python实现Word文档转换Markdown的示例
2020/12/22 Python
7 For All Mankind官网:美国加州洛杉矶的高级牛仔服装品牌
2018/12/20 全球购物
英国发展最快的在线超市之一:Click Marketplace
2021/02/15 全球购物
应用心理学个人的求职信
2013/12/08 职场文书
工作自荐信
2013/12/11 职场文书
我的长生果教学反思
2014/04/28 职场文书
领导干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2014年财政局工作总结
2014/12/09 职场文书
学校办公室主任岗位职责
2015/04/01 职场文书
婚礼父母致辞
2015/07/28 职场文书
golang switch语句的灵活写法介绍
2021/05/06 Golang
FFmpeg视频处理入门教程(新手必看)
2022/01/22 杂记