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 28 Python
各个系统下的Python解释器相关安装方法
Oct 12 Python
Python制作爬虫采集小说
Oct 25 Python
Python入门教程之运算符与控制流
Aug 17 Python
Python heapq使用详解及实例代码
Jan 25 Python
Python 专题六 局部变量、全局变量global、导入模块变量
Mar 20 Python
Python实现学校管理系统
Jan 11 Python
使用Python从零开始撸一个区块链
Mar 14 Python
Python 动态导入对象,importlib.import_module()的使用方法
Aug 28 Python
python 函数的缺省参数使用注意事项分析
Sep 17 Python
基于Python下载网络图片方法汇总代码实例
Jun 24 Python
matplotlib基础绘图命令之bar的使用方法
Aug 13 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正则表达式(regar expression)
2011/09/10 PHP
详解php中空字符串和0之间的关系
2016/10/23 PHP
Ecshop 后台添加新功能栏目及管理权限设置教程
2017/11/21 PHP
PHP使用curl_multi_select解决curl_multi网页假死问题的方法
2018/08/15 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)
2007/05/08 Javascript
js修改原型的属性使用介绍
2014/01/26 Javascript
js对象内部访问this修饰的成员函数示例
2014/04/27 Javascript
JavaScript基础教程之alert弹出提示框实例
2014/10/16 Javascript
Javascript aop(面向切面编程)之around(环绕)分析
2015/05/01 Javascript
jQuery基于函数重载实现自定义Alert函数样式的方法
2016/07/27 Javascript
jQuery中checkbox反复调用attr('checked', true/false)只有第一次生效的解决方法
2016/11/16 Javascript
探讨跨域请求资源的几种方式(总结)
2016/12/02 Javascript
jQuery树插件zTree使用方法详解
2017/05/02 jQuery
JavaScript实现选中文字提示新浪微博分享效果
2017/06/15 Javascript
js使用html2canvas实现屏幕截取的示例代码
2017/08/28 Javascript
js实现单张图片平移切换效果
2017/10/11 Javascript
jQuery获取随机颜色的实例代码
2018/05/21 jQuery
详解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
2018/10/12 Javascript
[03:26]回顾2015国际邀请赛中国区预选赛
2015/06/09 DOTA
Python写的一个简单DNS服务器实例
2014/06/04 Python
Python实现抓取网页并且解析的实例
2014/09/20 Python
Python读取word文本操作详解
2018/01/22 Python
Python进阶之递归函数的用法及其示例
2018/01/31 Python
Python散点图与折线图绘制过程解析
2019/11/30 Python
pycharm激活码免费分享适用最新pycharm2020.2.3永久激活
2020/11/25 Python
css3.0 图形构成实例练习一
2013/03/19 HTML / CSS
Raffaello Network德国:意大利拉斐尔时尚购物网
2019/05/01 全球购物
iostream与iostream.h的区别
2015/01/16 面试题
日语求职信范文
2013/12/17 职场文书
酒店管理毕业生自我鉴定
2014/03/02 职场文书
党员自我剖析材料(群众路线)
2014/10/06 职场文书
合作协议书模板
2014/10/10 职场文书
感谢信范文大全
2015/01/23 职场文书
团干部培训班心得体会
2016/01/06 职场文书
同学会演讲稿
2019/04/02 职场文书