Python实现自定义请求头消息headers,而修改headers
Python实现自定义请求头消息headers,而修改headers
使用python爬虫爬取数据的时候,经常会遇到一些网站的反爬虫措施,一般就是针对于headers中的User-Agent,如果没有对headers进行设置,User-Agent会声明自己是python脚本,而如果网站有反爬虫的想法的话,必然会拒绝这样的连接。
而修改headers可以将自己的爬虫脚本伪装成浏览器的正常访问,来避免这一问题。
一、使用urllib请求页面时
import urllib, urllib2
def get_page_source(url):
headers = {'Accept': '*/*',
'Accept-Language': 'en-US,en;q=0.8',
'Cache-Control': 'max-age=0',
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36',
'Connection': 'keep-alive',
'Referer': 'http://www.baidu.com/'
}
req = urllib2.Request(url, None, headers)
response = urllib2.urlopen(req)
page_source = response.read()
return page_source
二、使用webdriver phantomjs请求页面
#自定义请求头head
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
#设置自定义请求头参数
def get_headers_driver():
desire = DesiredCapabilities.PHANTOMJS.copy()
headers = {'Accept': '*/*',
'Accept-Language': 'en-US,en;q=0.8',
'Cache-Control': 'max-age=0',
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36',
'Connection': 'keep-alive',
'Referer': 'http://www.baidu.com/'
}
for key, value in headers.items():
desire['phantomjs.page.customHeaders.{}'.format(key)] = value
driver = webdriver.PhantomJS(desired_capabilities=desire, service_args=['--load-images=yes'])#将yes改成no可以让浏览器不加载图片
return driver
# 登录
def login():
driver = get_headers_driver(cookie)
url = "http://******/login/main.do"
driver.get(url)
#获取网页源码
print(driver.page_source)
相关内容
- Python的json库常用方法,(2)indent参
- python编程从入门到实践(第2版)学习笔记(变量,字符
- Python程序员Visual Studio Code指南1简介,IDLE的简洁性非常
- 离线安装Python第三方库及依赖包,2、解决办法(1)查
- Python教程(9)——Python变量类型列表list的用法介绍,列表
- 8.0 Python 使用进程与线程,进程是操作系统中的一
- Python中threading模块 lock、Rlock的使用,Lock&RLock
- Python 潮流周刊#15:如何分析 FastAPI 异步请求的性能?,
- 3.0 Python 迭代器与生成器,此时,我们可以采用迭
- Python 对象拷贝的详细教程,在阅读后,应该掌握如
评论关闭