概述
爬取百度主页数据
我们直接用python自带的url.request.urlopen是不能顺利获取百度网页的数据的,我们会得到如下的结果
import urllib.request
response = urllib.request.urlopen('https://www.baidu.com/')
print(response.read())
运行后得到的结果是:
很明显个对应百度的源码是不一样的,百度网页设置的反扒机制
应用url.request.Request重构网点的user agent,即可爬取数据
分三个步骤:1.创建请求对象,对应的代码块:
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'}
req = urllib.request.Request(url,headers=headers)
###上面的headers为一个用户代理,用于取代人工,意思是告诉网页是人在获取网页源代码而不是程序在获取源代码(也就是‘欺骗网页,不是在爬取数据,是人在读取数据,但是实际是代码在爬取源代码’)
###urllib.request.Request意思是把url的代理替换成人工,也就是上面所说的‘欺骗’,req创建相应的请求对象
2.获取响应对象:
response = urllib.request.urlopen(req)
把上面创建的对象打开
3.读取响应对象:
html = response.read().decode('utf-8')
下面展示完整的代码:
# url = 'http://www.baidu.com/'
# headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'}#字典
# #创建请求对象
# req = urllib.request.Request(url,headers=headers)
# #获取响应对象
# response = urllib.request.urlopen(req)
# #读取响应对象的内容
# html = response.read().decode('utf-8')
# print(html)
最后
以上就是标致人生为你收集整理的python爬虫——反反爬百度网页教程的全部内容,希望文章能够帮你解决python爬虫——反反爬百度网页教程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复