一、requests设置请求头:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
import requests url = "http://www.targetweb.com" headers = { 'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' , 'Cache-Control' : 'max-age=0' , 'Connection' : 'keep-alive' , 'Referer' : 'http://www.baidu.com/' , 'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4882.400 QQBrowser/9.7.13059.400' } res = requests.get(url,headers = headers) #图片下载时要用到字节流,请求方式如下 #res=requests.get(url,stream=True,headers) |
二、Selenium+Chrome请求头设置:
1
2
3
4
5
6
7
8
|
from selenium import webdriver options = webdriver.ChromeOptions() options.add_argument( 'lang=zh_CN.UTF-8' ) # 设置中文 options.add_argument( 'user-agent="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4882.400 QQBrowser/9.7.13059.400"' ) # 设置头部 browser = webdriver.Chrome(chrome_options = options) url = "http://www.targetweb.com" browser.get(url) browser.quit() |
三、selenium+phantomjs请求头设置:
1
2
3
4
5
6
7
8
|
from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities des_cap = dict (DesiredCapabilities.PHANTOMJS) des_cap[ "phantomjs.page.settings.userAgent" ] = ( "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4882.400 QQBrowser/9.7.13059.400" ) browser = webdriver.PhantomJS(desired_capabilities = des_cap) url = "http://www.targetweb.com" browser.get(url) browser.quit() |
四、爬虫框架scrapy设置请求头:
在settings.py文件中添加如下:
1
2
3
4
5
|
DEFAULT_REQUEST_HEADERS = { 'accept' : 'image/webp,*/*;q=0.8' , 'accept-language' : 'zh-CN,zh;q=0.8' , 'referer' : 'https://www.baidu.com/' , 'user-agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4882.400 QQBrowser/9.7.13059.400' ,} |
五、Python异步Aiohttp请求头设置:
1
2
3
4
5
6
7
8
9
10
11
12
|
import aiohttp url = "http://www.targetweb.com" headers = { 'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' , 'Cache-Control' : 'max-age=0' , 'Connection' : 'keep-alive' , 'Referer' : 'http://www.baidu.com/' , 'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4882.400 QQBrowser/9.7.13059.400' } asyncwithaiohttp.ClientSession(headers = headers)assession: asyncwithsession.get(url)asresp: print (resp.status) print (awaitresp.text()) |
内容扩展:
1、为什么要设置headers?
在请求网页爬取的时候,输出的text信息中会出现抱歉,无法访问等字眼,这就是禁止爬取,需要通过反爬机制去解决这个问题。
headers是解决requests请求反爬的方法之一,相当于我们进去这个网页的服务器本身,假装自己本身在爬取数据。
对反爬虫网页,可以设置一些headers信息,模拟成浏览器取访问网站 。
2、 headers在哪里找?
谷歌或者火狐浏览器,在网页面上点击:右键–>检查–>剩余按照图中显示操作,需要按Fn+F5刷新出网页来
有的浏览器是点击:右键->查看元素,刷新
以上就是python爬虫请求头设置代码的详细内容,更多关于python爬虫请求头如何设置的资料请关注服务器之家其它相关文章!
原文链接:https://www.py.cn/spider/guide/18537.html