最佳实践:python数据采集 爬虫_python爬虫数据采集

优采云 发布时间: 2022-12-25 05:45

  最佳实践:python数据采集 爬虫_python爬虫数据采集

  近年来,python的流行度特别火爆! 在大学期间,我也进行了一些深入的学习。 毕业后,我也尝试过将python作为自己的职业方向。 虽然我没有如愿成为一名python工程师,但是掌握python也让我现在的工作发展和职业发展更加得心应手。 便利。 这篇文章主要和大家分享一下我对python爬虫的收获和感悟。

  Python爬虫是大家最熟悉的python应用方式。 由于python拥有丰富的第三方开发库,可以进行很多工作:如web开发(django)、应用程序开发(tkinter、wxpython、qt)、数据统计和计算(numpy)、图形图像处理、深度学习,人工智能等。我平时用python爬虫(结合tkinter开发爬虫应用),用django开发一些小的个人网站。 django框架可以根据实体类自动生成管理端,大大提高了系统的开发效率。 有兴趣的朋友可以试试。

  一个成功的爬虫需要对应一个标准化的网站。 爬虫主要是为了方便我们获取数据。 如果目标系统的开发不规范,没有规则,很难定制一套规则用爬虫爬,爬虫基本都是定制的。 需要针对不同的系统进行调整。

  爬虫爬取数据的第一步网站分析目标网站的技术和数据结构(通过前端源代码)。 你可以使用chrome浏览器。 目前python爬虫主要面对以下三个网站:

  1、前后台网站分离

  前端通过传参访问接口,后端返回json数据。 对于这类网站,python可以模拟浏览器前端,发送参数然后接收数据,从而完成爬虫数据的目的

  2.静态网站

  通过python的第三方库(requests、urllib)下载源码,通过xpath和regular匹配数据

  3.动态网站

  如果使用第二种方式,下载的源码就是简单的html,源码中是没有数据的,因为这样的动态网站需要加载js,源码中才会有数据。 对于这样的网站,可以使用自动化测试工具selenium 。

  爬虫步骤:

  网站技术及目标数据结构分析

  根据第一步的分析结构,选择相应的技术策略

  抓取数据

  提高性能,提高操作舒适度(结合客户端技术为爬虫定制界面)

  按需清洗数据

  数据存储,存储到数据库,文档等。

  防捡机制:

  1.当系统判断属于同一个ip的客户端多次访问不间断时,会拒绝该ip的访问

  解决办法:动态代理,不断改变访问目标系统的ip,或者从免费ip代理网站抓取ip,建立ip池。 如果目标数据量不大,可以降低访问速度,避免反拾取

  2.目标系统需要注册登录才能访问

  解决方法:利用python的第三方库(Faker)生成假的登录名、密码和*敏*感*词*,实现自动注册登录

  3、需要处理目标系统中目标数据页的链接,才能进入目标数据页进行访问

  解决方法:无法正常访问目标网站目标数据页的链接。 需要研究页面中的js脚本,对链接进行处理。 我个人在通过搜狗浏览器爬取微信文章时遇到过这个问题。 爬取的文章链接需要通过js脚本进行拼接,才能获取正确的链接地址

  从哪里获取目标数据:

  通过xpath获取数据的位置,可以使用chrome浏览器调试功能获取对应数据的xpath路径

  

  通过正则匹配

  python爬虫常用的第三方库:

  urllib/requests 请求库

  Faker 生成假数据

  UserAgent 生成虚假标头

  etree, beautsoup 匹配数据

  json 处理json数据

  正规图书馆

  Selenium 自动化测试库

  sqlite3数据库python3自带

  抓取静态网页数据:

  导入请求

  from fake_useragent import UserAgent #provide fake request header

  from lxml import etree #匹配数据

  #抓取目标页面的url

  url='***ip****:8085/pricePublic/house/public/index'

  headers = {'User-Agent': str(UserAgent().random)}

  响应=请求。 得到(网址,标题=标题)

  # 获取网页源代码

  内容=响应.文本

  html = etree. HTML(内容)

  #使用xpath查找对应标签处的元素值,pageNum在这里爬取对应页面的页码

  pageNum=html.xpath('//*[@id="dec"]/div[2]/div/span[1]/text()')

  爬取前后端分离系统的数据:

  导入 json

  导入请求

  #获取返回的响应

  

  url='***ip***/FindById/22'

  响应 = 请求。 得到(网址)

  #通过json库解析json得到返回的数据

  DataNode = json.loads(response.text).get('返回数据').get('数据')[0]

  抓取动态数据:

  以下代码示例使用 Google 浏览器,使用 selenium 库,并将浏览器设置为无头模式。 爬虫会配合浏览器在后台模拟人工操作。 爬虫会根据代码中定义的xpath地址,在浏览器中找到相应的位置执行操作,使用selenium爬取数据时,需要安装相应版本的浏览器驱动

  导入请求

  从 faker 导入 Faker

  从 fake_useragent 导入 UserAgent

  从 lxml 导入 etree

  url='***ip***/FindById/22'

  # 通过faker库获取假邮箱和电话号码

  fake=Fakeer('zh_CN')

  电子邮件=假的。 电子邮件()

  tel=fake.phone_number()

  数据={

  “电子邮件”:电子邮件

  }

  #使用requests库发送post请求

  响应=请求。 post(url, data, headers=headers)

  代码=响应.status_code

  内容=响应.文本

  #获取返回的cookies并转化为字典

  cookies = requests.utils.dict_from_cookiejar(response.cookies)

  #请求时带上cookie

  response=requests.get(url, headers=headers, cookies=cookies)

  作为一个合法的公民,爬虫只是一种技术。 当我们使用它来爬取目标数据时,我们必须遵守一定的规则。 每个网站的根目录下都会有一个robots.txt(爬虫协议)文件,它规定了那些网页可以被访问,并且在爬取公共信息数据时,不能对目标系统造成严重的破坏。 因此,我们呼吁大家在使用各种技术开展工作的过程中,遵守各种技术法规和制度规范。 ,共同营造你我他文明的网络环境!

  操作方法:数据爬取方法

  目前采集数据主要有三种方式:使用有财云软件爬取数据,优采云采集器,使用优采云写程序爬取

  1.优采云也是一个知名的采集工具。 它有两个版本,一个是免费采集模板,一个是云采集(付费)。

  免费的采集模板其实就是内容采集规则,包括电子商务、生活服务、社交媒体、论坛网站等,使用起来非常采集。

  您也可以自己自定义任务。 配置好采集任务后,就可以交给有财优采云的云端进行采集了。 优采云共有5000台服务器。 通过云端多节点并发采集,采集速度远超本地采集。 另外可以自动切换多个IP,避免IP被封影响采集。

  

  云采集的功能非常方便。 很多时候IP自动切换和云采集是自动化采集的关键。

  2.有优采云采集器已有13年的历史,是一款老牌的采集工具。 它不仅可以用作爬虫,还可以用于数据清洗、数据分析、数据挖掘和可视化。 该数据源适用于绝大部分网页,通过采集规则抓取网页中可见的内容。

  3、在Python爬虫中,基本上有3个进程。

  (1)使用Requests来抓取内容。 我们可以使用Requests库来爬取网页信息。 Requests库可以说是Python爬虫的利器,也就是Python的HTTP库。 通过这个库来爬取网页中的数据是非常方便的,可以帮我们节省很多时间。

  (2) 使用XPath 解析内容。 XPath是XML Path的缩写,即XML Path Language。 它是一种用于确定XML文档中某部分位置的语言,在开发中常用作小型查询语言。 XPath 可以按元素和属性按位置索引。

  

  (3) 使用Pandas 保存数据。 Pandas 是一种高级数据结构,可以使数据分析变得更加容易。 我们可以使用 Pandas 来保存爬取的数据。 最后通过Pandas写入XLS或MySQL等数据库。

  初学者推荐使用优采云采集工具,简单易用

  具体案例:

  需求一:采集一些目标博主发帖

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线