Python3 自定义请求头消息headers详解编程语言

Python3 自定义请求头消息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)

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/16677.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论