爬虫课程

本文详细介绍了爬虫技术中的关键技巧,包括修改User-Agent、发送带参数请求、使用代理、处理Session、获取POST页面等。同时,讲解了如何处理URL编码、解码,以及SSL证书验证问题。此外,还提供了重复请求同一网页的方法,并介绍了如何利用XPath和lxml处理网页数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.一般默认的请求的user-agent 为程序的 网页会识别出 那么如何改呢

   # 如何修改user-agent

必须先定义一个字典,然后把键值对传进去  Request.get(网址,headers=刚才定义的字典)  

怎么发送带参数的请求

Request.get(网址,params=刚才定义的字典)  

如何解码 url编码的地址 (值开始为%)

使用代理的好处 ,我们每次快速爬去网页的时候,服务端往往很快的把你识别出 你是否为爬虫,比如看同一个IP地址的访问速度。过快就会认为是爬虫,那么我们又想把他爬下来 ,就可以使用代理(每次请求代理,代理分配多个IP去请求,最后把相应结果还给您 至少您可以这么理解)

介绍两个代理地址 ,码农很忙,米扑代理

怎么使用带session去访问某个网站

session=request.session() #先使用session发送请求,登陆对网站,把cookie保存在session中

response=session.get(url,headers) #再使用session请求登陆后才能访问网站,session能够自动的携带登陆成功的session 

怎么获取post的页面 

1.表单提交的action 属性就是

2.抓包:如果没有action 属性 就点击F12 中的preserve log 请求的时候,不会清理之前的请求文件 找到url

寻找post数据找到确定参数

1.参数不变的照样填写 ,参数发生改变两种情况

 参数在前一次相应中

参数通过JS 生成的

  定位想要的JS

F12选择触发的JS事件按钮,点击EVENT LISTENER,找到JS

然后通过断点的方式生成答案

 

把浏览器的cookie对象转为字典

1.得到response对象后

2.request.utils.dict_from_cookiejar(response.cookies),返回值为一个字典  cookiejar _from_dict 则相反

将url 进行解码
request.utils.unquote(url) #quote则是编码
SSL 认证
我们访问一些没有认证SSL证书的网页时,request会直接报错,加入verify=flase 则会忽视证书的问题
如何重复的请求同一个函数(网页?)
from  retrying import  retry
@retry(stop_max_attempt_number=2)
函数

===========================================================

相关博客

http://www.w3school.com.cn/xpath/xpath_syntax.asp

使用xpath help可以处理网页上的数据 但是,请求体的相应往往和网页的的结果不一样 就要用到lxml

from lxml import etree

text='''
<div>
    <ul>
         <li class="item-0"><a href="link1.html">第一个</a></li>
         <li class="item-1"><a href="link2.html">second item</a></li>
         <li class="item-0"><a href="link5.html">a属性</a>
     </ul>
 </div>
'''
html=etree.HTML(text) #初始化生成一个XPath解析对象

result=html.xpath('//*')  #//代表获取子孙节点,*代表获取所有,结果为列表
etree.tostring(strs, encoding = "utf-8", pretty_print = True, method = "html")) # 可以正常显示中文

解决无法显示中文问题

======================================

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值