Python爬虫:第二章 requests模块基础 example2 爬取搜狗指定词条对应的搜索结果页面(4)

第二章 requests模块基础

example2: 爬取搜狗指定词条对应的搜索结果页面(简易网页采集器)

补充:反爬机制

在这里插入图片描述

#----- 实战代码2:-----
# 基于requests模块的get请求
# 需求:爬取搜狗指定词条对应的搜索结果页面(简易网页采集器)
# 反爬机制
# User-Agent:请求载体的身份标识,使用浏览器发起的请求,请求载体的身份标识为浏览器,使用爬虫程序发起的请求,请求载体为爬虫程序。
# UA检测:相关的门户网站通过检测请求该网站的载体身份来辨别该请求是否为爬虫程序,如果是,则网站数据请求失败。因为正常用户对网站发起的请求的载体一定是基于某一款浏览器,如果网站检测到某一请求载体身份标识不是基于浏览器的,则让其请求失败。因此,UA检测是我们整个课程中遇到的第二种反爬机制,第一种是robots协议。
# UA伪装:通过修改/伪装爬虫请求的User-Agent来破解UA检测这种反爬机制,具体实现见下属代码:
import requests
#指定搜索关键字
word = input('enter a word you want to search:')
#自定义请求头信息:UA伪装,将包含了User-Agent的字典作用到请求方法的headers参数中即可
headers={
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36',
    }
#指定url,原始url可能是https://www.sogou.com/web?query=name,发现该url携带了参数
url = 'https://www.sogou.com/web'
#封装get请求参数:如果请求携带了参数,则可以将参数封装到字典中结合这requests请求方法中的data/params参数进行url参数的处理
param = {
    'query':word,
}
#发起请求
response = requests.get(url=url,params=param,headers=headers)
#获取响应数据
page_text = response.text
#持久化存储
fileName = word+'.html'
with open(fileName,'w',encoding='utf-8') as fp:
    fp.write(page_text)
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值