python网络爬虫之如何伪装逃过反爬虫程序的方法


Posted in Python onNovember 23, 2017

有的时候,我们本来写得好好的爬虫代码,之前还运行得Ok, 一下子突然报错了。

报错信息如下:

Http 800 Internal internet error

这是因为你的对象网站设置了反爬虫程序,如果用现有的爬虫代码,会被拒绝。

之前正常的爬虫代码如下:

from urllib.request import urlopen
...
html = urlopen(scrapeUrl)
bsObj = BeautifulSoup(html.read(), "html.parser")

这个时候,需要我们给我们的爬虫代码做下伪装,

给它添加表头伪装成是来自浏览器的请求

修改后的代码如下:

import urllib.parse
import urllib.request
from bs4 import BeautifulSoup
...
req = urllib.request.Request(scrapeUrl)
req.add_header('User-Agent', 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)') 
response = urllib.request.urlopen(req) 
html = response.read()
 
bsObj = BeautifulSoup(html, "html.parser")

Ok,一切搞定,又可以继续爬了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python使用在线API查询IP对应的地理位置信息实例
Jun 01 Python
python进阶教程之循环对象
Aug 30 Python
深入讲解Python编程中的字符串
Oct 14 Python
Python实现获取汉字偏旁部首的方法示例【测试可用】
Dec 18 Python
django 做 migrate 时 表已存在的处理方法
Aug 31 Python
python生成器用法实例详解
Nov 22 Python
python调用函数、类和文件操作简单实例总结
Nov 29 Python
基于python读取.mat文件并取出信息
Dec 16 Python
Python3基本输入与输出操作实例分析
Feb 14 Python
python实现时间序列自相关图(acf)、偏自相关图(pacf)教程
Jun 03 Python
浅谈matplotlib默认字体设置探索
Feb 03 Python
Python3+SQLAlchemy+Sqlite3实现ORM教程
Feb 16 Python
Python实现的基数排序算法原理与用法实例分析
Nov 23 #Python
Scrapy抓取京东商品、豆瓣电影及代码分享
Nov 23 #Python
python简单图片操作:打开\显示\保存图像方法介绍
Nov 23 #Python
python分析作业提交情况
Nov 22 #Python
Python分析学校四六级过关情况
Nov 22 #Python
linux环境下的python安装过程图解(含setuptools)
Nov 22 #Python
python使用正则表达式替换匹配成功的组并输出替换的次数
Nov 22 #Python
You might like
DOTA2【瓜皮时刻】Vol.91 RTZ山史最惨“矿难”
2021/03/05 DOTA
php&java(二)
2006/10/09 PHP
php中判断数组是一维,二维,还是多维的解决方法
2013/05/04 PHP
Windows和Linux中php代码调试工具Xdebug的安装与配置详解
2014/05/08 PHP
php使用$_POST或$_SESSION[]向js函数传参
2014/09/16 PHP
WordPress中获取页面链接和标题的相关PHP函数用法解析
2015/12/17 PHP
PHP实现搜索地理位置及计算两点地理位置间距离的实例
2016/01/08 PHP
PHP实现浏览器中直接输出图片的方法示例
2018/03/14 PHP
Linux下源码包安装Swoole及基本使用操作图文详解
2019/04/02 PHP
基于php解决json_encode中文UNICODE转码问题
2020/11/10 PHP
JavaScript字符串String和Array操作的有趣方法
2012/12/18 Javascript
浅析tr的隐藏和显示问题
2014/03/05 Javascript
Node.js模拟浏览器文件上传示例
2014/03/26 Javascript
提高NodeJS中SSL服务的性能
2014/07/15 NodeJs
js/jquery判断浏览器的方法小结
2014/09/02 Javascript
轻量级的原生js日历插件calendar.js使用指南
2015/04/28 Javascript
JavaScript常用标签和方法总结
2015/09/01 Javascript
JS实现微信弹出搜索框 多条件查询功能
2016/12/13 Javascript
js获取元素下的第一级子元素的方法(推荐)
2017/03/05 Javascript
JS实现点击按钮可实现编辑功能
2018/07/03 Javascript
JS调用安卓手机摄像头扫描二维码
2018/10/16 Javascript
微信小程序之下拉列表实现方法解析(附完整源码)
2019/08/23 Javascript
微信小程序canvas分享海报功能
2019/10/31 Javascript
javascript浅层克隆、深度克隆对比及实例解析
2020/02/09 Javascript
JavaScript TAB栏切换效果的示例
2020/11/05 Javascript
[59:26]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第二局
2016/02/28 DOTA
[36:54]Mineski vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python中字符串的修改及传参详解
2016/11/30 Python
Python装饰器原理与用法分析
2018/04/30 Python
英国曼彻斯特宠物用品品牌:Bunty Pet Products
2019/07/27 全球购物
英语系毕业生自荐信
2013/10/31 职场文书
巧克力蛋糕店创业计划书
2014/01/14 职场文书
感恩之星事迹材料
2014/05/03 职场文书
安康杯竞赛活动总结
2014/05/05 职场文书
SQLServer权限之只开启创建表权限
2022/04/12 SQL Server
SpringBoot Http远程调用的方法
2022/08/14 Java/Android