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中的__init__ 、__new__、__call__小结
Apr 25 Python
Python中__name__的使用实例
Apr 14 Python
Python的装饰器用法学习笔记
Jun 24 Python
python 查找字符串是否存在实例详解
Jan 20 Python
python 数据清洗之数据合并、转换、过滤、排序
Feb 12 Python
python 将字符串转换成字典dict的各种方式总结
Mar 23 Python
python复制列表时[:]和[::]之间有什么区别
Oct 16 Python
Python基于pygame实现单机版五子棋对战
Dec 26 Python
Django 设置admin后台表和App(应用)为中文名的操作方法
May 10 Python
TensorFlow实现模型断点训练,checkpoint模型载入方式
May 26 Python
Windows 平台做 Python 开发的最佳组合(推荐)
Jul 27 Python
python实现三次密码验证的示例
Apr 29 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/09/29 PHP
PHP压缩html网页代码(清除空格,换行符,制表符,注释标记)
2012/04/02 PHP
PHP实现的简单sha1加密功能示例
2017/08/27 PHP
PHP设计模式之模板方法模式定义与用法详解
2018/04/02 PHP
JavaScript 题型问答有答案参考
2010/02/17 Javascript
JavaScript 放大镜 移动镜片效果代码
2011/05/09 Javascript
jquery插件制作 图片走廊 gallery
2012/08/17 Javascript
jQuery+css+html实现页面遮罩弹出框
2013/03/21 Javascript
用JS实现3D球状标签云示例代码
2013/12/01 Javascript
Json序列化和反序列化方法解析
2013/12/19 Javascript
详解JavaScript基于面向对象之创建对象(2)
2015/12/10 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
2015/12/17 Javascript
拥有一个属于自己的javascript表单验证插件
2016/03/24 Javascript
[原创]Bootstrap 中下拉菜单修改成鼠标悬停直接显示
2016/04/14 Javascript
41个Web开发者必须收藏的JavaScript实用技巧
2016/07/22 Javascript
BootStrap按钮标签及基本样式
2016/11/23 Javascript
js仿小米手机上下滑动效果
2017/02/05 Javascript
vue2 mint-ui loadmore实现下拉刷新,上拉更多功能
2018/03/21 Javascript
vue2.0的虚拟DOM渲染思路分析
2018/08/09 Javascript
vue-cli —— 如何局部修改Element样式
2020/10/22 Javascript
[47:03]完美世界DOTA2联赛PWL S3 Galaxy Racer vs Phoenix 第二场 12.10
2020/12/13 DOTA
跟老齐学Python之正规地说一句话
2014/09/28 Python
python数据结构之图的实现方法
2015/07/08 Python
python 字符串转列表 list 出现\ufeff的解决方法
2017/06/22 Python
Django-Rest-Framework 权限管理源码浅析(小结)
2018/11/12 Python
python构建基础的爬虫教学
2018/12/23 Python
python-web根据元素属性进行定位的方法
2019/12/13 Python
新东方旗下远程教育网站:新东方在线
2020/03/19 全球购物
文秘专业大学生求职信
2013/11/10 职场文书
学校消防安全制度
2014/01/30 职场文书
艺术设计专业求职自荐信
2014/05/19 职场文书
十一国庆节“向国旗敬礼”主题班会活动方案
2014/09/27 职场文书
西安导游词
2015/02/12 职场文书
入党介绍人意见2015
2015/06/01 职场文书
读《瓦尔登湖》有感:每个人都需要一个瓦尔登湖
2019/10/17 职场文书
原生JS实现分页
2022/04/19 Javascript