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基础语法(Python基础知识点)
Feb 28 Python
让Python更加充分的使用Sqlite3
Dec 11 Python
详解Python异常处理中的Finally else的功能
Dec 29 Python
浅谈Python用QQ邮箱发送邮件时授权码的问题
Jan 29 Python
用python统计代码行的示例(包括空行和注释)
Jul 24 Python
python三方库之requests的快速上手
Mar 04 Python
pytorch使用指定GPU训练的实例
Aug 19 Python
python装饰器的特性原理详解
Dec 25 Python
Python实现查找数据库最接近的数据
Jun 08 Python
keras 使用Lambda 快速新建层 添加多个参数操作
Jun 10 Python
怎么用Python识别手势数字
Jun 07 Python
使用python绘制分组对比柱状图
Apr 21 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中常见数据类型的汇总分享
2014/01/06 PHP
php警告Creating default object from empty value 问题的解决方法
2014/04/02 PHP
php查询及多条件查询
2017/02/26 PHP
Javascript 二维数组
2009/11/26 Javascript
javascript qq右下角滑出窗口 sheyMsg
2010/03/21 Javascript
jQuery实现的fixedMenu下拉菜单效果代码
2015/08/24 Javascript
Extjs4.0 ComboBox如何实现三级联动
2016/05/11 Javascript
基于jQuery实现弹出可关闭遮罩提示框实例代码
2016/07/18 Javascript
JavaScript编码风格指南(中文版)
2016/08/26 Javascript
妙用Bootstrap的 popover插件实现校验表单提示功能
2016/08/29 Javascript
js 打开新页面在屏幕中间的实现方法
2016/11/02 Javascript
vue使用技巧及vue项目中遇到的问题
2018/06/04 Javascript
vue实现循环切换动画
2018/10/17 Javascript
在node中使用jwt签发与验证token的方法
2019/04/03 Javascript
15 分钟掌握vue-next响应式原理
2019/10/13 Javascript
Vue实现图片与文字混输效果
2019/12/04 Javascript
[02:47]DOTA2亚洲邀请赛 HR战队出场宣传片
2015/02/07 DOTA
在Django中限制已登录用户的访问的方法
2015/07/23 Python
Python中常见的异常总结
2018/02/20 Python
python实现超简单的视频对象提取功能
2018/06/04 Python
python实现弹跳小球
2019/05/13 Python
python批量修改ssh密码的实现
2019/08/08 Python
关于Python内存分配时的小秘密分享
2019/09/05 Python
pycharm 实现光标快速移动到括号外或行尾的操作
2021/02/05 Python
一些Solaris面试题
2013/03/22 面试题
职称自我鉴定
2013/10/15 职场文书
有针对性的求职自荐信
2013/11/14 职场文书
计算机专业毕业生推荐信
2013/11/25 职场文书
幼儿园元旦活动感言
2014/03/02 职场文书
房屋继承公证书
2014/04/10 职场文书
第一批党的群众路线教育实践活动总结报告
2014/07/03 职场文书
2014年党员加强作风建设思想汇报
2014/09/15 职场文书
教师学期末个人总结
2015/02/13 职场文书
2015年保安个人工作总结
2015/04/02 职场文书
python删除csv文件的行列
2021/04/06 Python
vue如何在data中引入图片的正确路径
2022/06/05 Vue.js