推广 热搜:   公司  中国  行业  快速  设备  企业  上海  未来  技术 

Python爬虫高手爬爬爬(各种案例更新中。。。)

   日期:2024-12-28     移动:http://www78564.xrbh.cn/mobile/quote/28082.html

Python爬虫高手爬爬爬(各种案例更新中。。。)

  • 通用爬虫
    抓取系统重要组成部分。抓取的是一整张页面数据。
  • 聚焦爬虫
    是建立在通用爬虫的基础之上。抓取的是页面中特定的局部内容。
  • 增量式爬虫
    检测网站中数据更新的情况。只会抓取网站中最新更新出来的数据。

君子协议。规定了网站中哪些数据可以被爬虫爬取哪些数据不可以被爬取。url后面直接访问。

http协议

  • 概念:就是服务器和客户端进行数据交互的一种形式。
    常用请求头信息
  • User-Agent:请求载体的身份标识
  • Connection:请求完毕后,是断开连接还是保持连接

常用响应头信息

  • Content-Type:服务器响应回客户端的数据类型

https协议

  • 安全的超文本传输协议

加密方式

  • 对称秘钥加密
  • 非对称秘钥加密
  • 证书秘钥加密

python中原生的一款基于网络请求的模块,功能非常强大,简单便捷,效率极高。

模拟浏览器发请求

(requests模块的编码流程

  • 指定url
    • UA伪装
    • 请求参数的处理
  • 发起请求
  • 获取响应数据
  • 持久化存储

参数一般封装成字典

 
 

返回值response的属性⭐

  • response.text 获取str类型(Unicode编码)的响应、html
  • response.json Content-Type为json时,可以直接获取json
  • response.content 获取bytes类型的响应、图片视频二进制文件
  • response.status_code 获取响应状态码
  • response.headers 获取响应头
  • response.request 获取响应对应的请求
  • response.cookies 获取ciookies
  • 使用的cookie和session好处:很多网站必须登录之后(或者获取某种权限之后)才能能够请求到相关数据。
  • 使用的cookie和session的弊端:一套cookie和session往往和一个用户对应.请求太快,请求次数太多,容易被服务器识别为爬虫,从而使账号收到损害。
  • 不需要cookie的时候尽量不去使用cookie。为了获取登录之后的页面,我们必须发送带有cookies的请求,此时为了确保账号安全应该尽量降低数据
    采集速度。
 
 

聚焦爬虫
正则
bs4
xpath

通过正则表达式匹配需要抓取的链接

爬30页糗事百科的video图片

 
 

Python特有,需要的包:bs4、lxml
步骤

  • 实例化BeautifulSoup对象,加载页面源码
  • 使用BeautifulSoup对象中的方法或属性定位标签和提取数据

对象的实例化

  • 1.将本地的html文档中的数据加载到该对象中
 
  • 2.将互联网上获取的页面源码加载到该对象中
 

提供的用于数据解析的方法和属性

soup.tagName返回的是文档中第一次出现的tagName对应的标签soup.find()find(‘tagName’):等同于soup.divselectselect(‘某种选择器(id,class,标签…选择器)’),返回的是一个列表soup.a.text/string/get_text()获取文本soup.a[‘href’]获取a标签中属性值href
  •  
  •  

爬取三国演义所有章节

 
 

xpath解析原理

  • 1.实例化一个etree的对象,且需要将被解析的页面源码数据加载到该对象中。
  • 2.调用etree对象中的xpath方法结合着xpath表达式实现标签的定位和内容的捕获。

如何实例化一个etree对象:from lxml import etree

  • 1.将本地的html文档中的源码数据加载到etree对象中
 
  • 2.可以将从互联网上获取的源码数据加载到该对象中
 

xpath(‘xpath表达式’)
xpath表达式:

/表示的是从根节点开始定位。表示的是一个层级//表示的是多个层级。可以表示从任意位置开始定位。属性定位//div[@class=‘song’] tag[@attrName=“attrValue”]索引定位//div[@class=“song”]/p[3] 索引是从1开始的。取文本:/text() 获取的是标签中直系的文本内容、 //text() 标签中非直系的文本内容(所有的文本内容)取属性:img/@src

58二手房房源信息以及面积

 

4k美女图

注意中文的乱码问题,一般解决方法

  • 1.直接response.encoding = ‘utf-8’ 看是否支持直接编码成utf-8
  • 2.img_name.encode(‘iso-8859-1’).decode(‘gbk’) 编码再解码
 

获取全国城市

注意tree.xpath的书写,按位或 | 获取所有符合的列表数据

 

爬取 http://www.51pptmoban.com/的ppt模板

注意网站的跳转

 
 

验证码识别方法

  • 人眼
  • 第三方专业平台(云打码、超级鹰、斐斐打码等
  • tesseract-ocr实测效果差!智能识别英文
  • 百度AI平台
  • 自己orc训练识别模型,给接口使用
  • 设置方法规避验证码

云打码识别,效果良好,金钱的力量

古诗文网验证码登录,主程序

 

YDMHttp类

 

斐斐打码自掏腰包实测很好用

 

tesseract-ocr识别效果细碎。。。

 

百度AI平台识别,通用文字识别(高精度版,精度还行偶尔缺失。。。。

四个字母只能识别出两三个,哭了

 

账号密码验证码模拟登录,古诗文网,使用斐斐打码

主程序

 

fateadm_api_py3

 

登录成功了!就可以拿cookie了

  • 手动处理:通过抓包工具获取cookie值,将该值封装到headers中。(不建议
  • 自动处理:新建session对象,session去请求之后,session里面包含cookie
 
 

代理的作用
- 突破自身IP访问的限制。
- 隐藏自身真实IP

  • 快代理
  • 西祠代理
  • www.goubanjia.com
  • 代理ip的类型
  • http:应用到http协议对应的url中
  • https:应用到https协议对应的url中

代理ip的匿名度
- 透明:服务器知道该次请求使用了代理,也知道请求对应的真实ip
- 匿名:知道使用了代理,不知道真实ip
- 高匿:不知道使用了代理,更不知道真实的ip

 
 

有点难,稍后总结

selenium模块:便捷实现模拟登录,基于浏览器自动化的一个模块
使用流程

  1. 环境安装:pip install selenium
  2. 下载一个浏览器的驱动程序 (谷歌浏览器
    - 下载路径:http://chromedriver.storage.googleapis.com/index.html
    - 驱动程序和浏览器的映射关系:http://blog.csdn.net/huilan_same/article/details/51896672
  3. 实例化一个浏览器对象
    - 编写基于浏览器自动化的操作代码
    - 发起请求:get(url)
    - 标签定位:find系列的方法
    - 标签交互:send_keys(‘xxx’)
    - 执行js程序:excute_script(‘jsCode’)
    - 前进,后退:back(),forward()
    - 关闭浏览器:quit()
  4. selenium处理iframe
    - 1.如果定位的标签存在于iframe标签之中,则必须使用switch_to.frame(id)
    - 2.动作链(拖动:from selenium.webdriver import ActionChains
    - action = ActionChains(bro):实例化一个动作链对象
    - click_and_hold(div:长按且点击操作
    - move_by_offset(x,y)
    - perform() 让动作链立即执行
    - action.release() 释放动作链对象

使用超级鹰模拟登录12306

本文地址:http://www78564.xrbh.cn/quote/28082.html    迅博思语 http://www78564.xrbh.cn/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


相关最新动态
推荐最新动态
点击排行
网站首页  |  二维码  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备2023022329号