我是靠谱客的博主 标致人生,最近开发中收集的这篇文章主要介绍python爬虫——反反爬百度网页教程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

爬取百度主页数据

我们直接用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爬虫——反反爬百度网页教程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部