首页 > 编程语言 >Python实现自定义请求头消息headers

Python实现自定义请求头消息headers

时间:2023-08-17 16:44:19浏览次数:45  
标签:自定义 source Python get driver headers page

使用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)

标签:自定义,source,Python,get,driver,headers,page
From: https://www.cnblogs.com/djdjdj123/p/17638080.html

相关文章

  • Python 有趣的模块之pynupt——通过pynput控制鼠标和键盘
    写在前面Python中有许多有趣和强大的模块,其中一个非常有趣的模块就是pynupt。pynupt是基于pynput模块的一个封装,用于控制鼠标和键盘。它可以实现自动化操作和游戏外挂等功能。本文将详细介绍pynupt模块的使用方法和常见的功能。1.安装pynput模块在开始使用pynupt之前,我们需要......
  • 为远程群晖NAS的自定义域名免费申请SSL证书
    概述ERP系统对于企业来说重要性不言而喻,不管是财务、生产、销售还是采购,都需要用到ERP系统来协助。但ERP中这些重要数据属于企业机密文档,往往需要本地化管理,只能部署在企业内网之下。有时候我们会遇到在外需要远程登录ERP临时处理紧急事务,我们可以通过内网穿透来解决,将ERP服务端端......
  • python3 安装clickhouse_sqlalchemy(greenlet) 失败
    环境信息:centos7操作系统,python3.8执行pip3installclickhouse_sqlalchemy或者pip3installgreenlet报以下报错:Command"/opt/python3.6.10-customized/bin/python3.6-u-c"importsetuptools,tokenize;file='/tmp/pip-install-wbyi43ip/greenlet/setup.py';f=g......
  • python中%d、%i、%.nf、%s占位符
     001、%d:整数%i:十进制整数%.nf:浮点数%s:字符串 举例:>>>print("aaaa%dbbbb"%10)##整数aaaa10bbbb>>>print("aaaa%ibbbb"%10)##十进制整数aaaa10bbbb>>>print("aaaa%.2fbbbb"%10)##浮点数......
  • python
    importrandomdefgenerate_random_number(start,end):returnrandom.randint(start,end)示例输入start=1end=100调用函数并打印结果random_number=generate_random_number(start,end)print("生成的随机整数为:",random_number)......
  • python中SeqIO模块处理fasta文件
     001、分别输出染色体ID、序列和序列的长度[root@PC1test02]#lsa.fatest.py[root@PC1test02]#cata.fa##测试数据>seq1AGAAGGGG>seq2AAACCTTTT>seq3AAATTTCCGG[root@PC1test02]#cattest.py##程序#!/usr/bin/envpython#-*-coding:......
  • Python 有趣的模块之pynupt——通过pynput控制鼠标和键盘
    写在前面Python中有许多有趣和强大的模块,其中一个非常有趣的模块就是pynupt。pynupt是基于pynput模块的一个封装,用于控制鼠标和键盘。它可以实现自动化操作和游戏外挂等功能。 本文将详细介绍pynupt模块的使用方法和常见的功能。1.安装pynput模块在开始使用pynupt之前,我们......
  • Python小项目:利用 U-net 完成细胞图像分割
    完整数据集下载:下载链接1前言在当今数字化时代,图像处理和分析已经成为了科学研究和技术应用领域的关键部分。在生物医学领域,图像分析对于诊断、治疗和疾病研究具有重要意义。本项目将带您深入了解U-net细胞分割技术,这是一种在生物医学图像领域广泛应用的语义分割方法,旨在精......
  • mybatis自定义拦截器@Intercepts
    mybatis:自定义实现拦截器插件Interceptor-知乎(zhihu.com) 11.插件机制Interceptor|一灰灰Learning(hhui.top)......
  • 3分钟学会Python 常用配置文件处理
    一:配置文件1.什么是配置文件配置文件是为程序配置参数和初始设置的文件。一般为文本文件,以ini,conf,cnf,cfg,yaml等作为后缀名。例如mysql的配置文件my.cnf内容如下:[mysqld]#Onlyallowconnectionsfromlocalhostbind-address=0.0.0.0mysqlx-bind-address=127.0.0.......