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中的两个内置模块介绍
Apr 05 Python
windows系统下Python环境的搭建(Aptana Studio)
Mar 06 Python
解决python nohup linux 后台运行输出的问题
May 11 Python
python调用matplotlib模块绘制柱状图
Oct 18 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
Dec 09 Python
python实现监控阿里云账户余额功能
Dec 16 Python
详解Ubuntu环境下部署Django+uwsgi+nginx总结
Apr 02 Python
Keras之自定义损失(loss)函数用法说明
Jun 10 Python
实现Python3数组旋转的3种算法实例
Sep 16 Python
python单元测试框架pytest的使用示例
Oct 07 Python
20行代码教你用python给证件照换底色的方法示例
Feb 05 Python
python playwrigh框架入门安装使用
Jul 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代码 用PHP写出自己的BLOG系统
2010/04/12 PHP
php小技巧之过滤ascii控制字符
2014/05/14 PHP
PHP嵌套输出缓冲代码实例
2015/05/12 PHP
PHP创建word文档的方法(平台无关)
2016/03/29 PHP
php实现base64图片上传方式实例代码
2017/02/22 PHP
laravel5.6框架操作数据curd写法(查询构建器)实例分析
2020/01/26 PHP
javascript实现div浮动在网页最顶上并带关闭按钮效果实例
2013/08/13 Javascript
Node.js模拟浏览器文件上传示例
2014/03/26 Javascript
JavaScript中最简洁的编码html字符串的方法
2014/10/11 Javascript
jQuery插件formValidator自定义函数扩展功能实例详解
2015/11/25 Javascript
微信小程序 数组中的push与concat的区别
2017/01/05 Javascript
JS对象是否拥有某属性如何判断
2017/02/03 Javascript
微信小程序上传图片到服务器实例代码
2017/11/07 Javascript
vue项目中vue-i18n和element-ui国际化开发实现过程
2018/04/25 Javascript
JavaScript数据结构与算法之二叉树插入节点、生成二叉树示例
2019/02/21 Javascript
vue实现图片上传功能
2020/05/28 Javascript
Vue点击切换Class变化,实现Active当前样式操作
2020/07/17 Javascript
JavaScript this关键字指向常用情况解析
2020/09/02 Javascript
利用vue3+ts实现管理后台(增删改查)
2020/10/30 Javascript
python的id()函数解密过程
2012/12/25 Python
python重试装饰器示例
2014/02/11 Python
python魔法方法-自定义序列详解
2016/07/21 Python
深入理解Python3中的http.client模块
2017/03/29 Python
python正则-re的用法详解
2019/07/28 Python
Python Tkinter模块 GUI 可视化实例
2019/11/20 Python
Python+OpenCV图像处理——实现直线检测
2020/10/23 Python
Python利用matplotlib绘制折线图的新手教程
2020/11/05 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
2020/12/15 Python
HTML5 CSS3打造相册效果附源码下载
2014/06/16 HTML / CSS
html5 实现客户端验证上传文件的大小(简单实例)
2016/05/15 HTML / CSS
使用Html5中的cavas画一面国旗
2019/09/25 HTML / CSS
NYX Professional Makeup俄罗斯官网:世界知名的化妆品品牌
2019/12/26 全球购物
2014庆六一活动方案
2014/03/02 职场文书
司法工作人员群众路线对照检查材料思想汇报
2014/09/30 职场文书
民事诉讼代理授权委托书
2014/10/11 职场文书
成本会计实训报告
2014/11/05 职场文书