python3爬虫伪装代理IP

2023-11-20

在爬取类似 起点 色魔张大妈 这样的网站时,会被网站看出是爬虫机制,这时需要伪装成浏览器以及使用IP代理的方式来爬去正常内容。

 

  • 实例
  • import re
    import requests
    import urllib.request
    from lxml import etree
    
    url='https://www.qidian.com/rank/hotsales'
    #浏览器伪装
    # opener=urllib.request.build_opener()
    
    #设置代理
    proxy = {'http': '125.127.24.239:808'}
    proxy_support = urllib.request.ProxyHandler(proxy)
    opener=urllib.request.build_opener(proxy_support)
    opener.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36')]
    urllib.request.install_opener(opener)
    html=urllib.request.urlopen(url).read().decode('utf-8')
    
    # html=requests.get(url).text
    # f = open('FC.html','w')
    # f.write(str(html))
    # f.close()
    # print(html)
    
    selector=etree.HTML(html)
    info = selector.xpath('//div[@class="book-mid-info"]')
    
    for each in info:
        name=each.xpath('h4/a[@data-eid="qd_C40"]/text()')
        author=each.xpath('p[@class="author"]/a[@class="name"]/text()')
        target=each.xpath('p[@class="author"]/a[@data-eid="qd_C42"]/text()')
        intro=each.xpath('p[@class="intro"]/text()')[0]
        print(name)
        print(author)
        print(target)
        print(intro+'\n')

 

 

 

  • 爬虫浏览器伪装
  • #导入urllib.request模块
    import urllib.request
    
    #设置请求头
    headers=("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0")
    #创建一个opener
    opener=urllib.request.build_opener()
    #将headers添加到opener中
    opener.addheaders=[headers]
    #将opener安装为全局
    urllib.request.install_opener(opener)
    #用urlopen打开网页
    data=urllib.request.urlopen(url).read().decode('utf-8','ignore')
  • 设置代理
  • #定义代理ip
    proxy_addr="122.241.72.191:808"
    #设置代理
    proxy=urllib.request.ProxyHandle({'http':proxy_addr})
    #创建一个opener
    opener=urllib.request.build_opener(proxy,urllib.request.HTTPHandle)
    #将opener安装为全局
    urllib.request.install_opener(opener)
    #用urlopen打开网页
    data=urllib.request.urlopen(url).read().decode('utf-8','ignore')

 

  • 同时设置用代理和模拟浏览器访问
  • #定义代理ip
    proxy_addr="122.241.72.191:808"
    #创建一个请求
    req=urllib.request.Request(url)
    #添加headers
    req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
    #设置代理
    proxy=urllib.request.ProxyHandle("http":proxy_addr)
    #创建一个opener
    opener=urllib.request.build_opener(proxy,urllib.request.HTTPHandle)
    #将opener安装为全局
    urllib.request.install_opener(opener)
    #用urlopen打开网页
    data=urllib.request.urlopen(req).read().decode('utf-8','ignore')

     

代理用IP可以参考http://www.xicidaili.com/

 

内容参考于http://blog.csdn.net/d1240673769/article/details/74295148 感谢

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python3爬虫伪装代理IP 的相关文章

  • 如何传递架构以从现有数据帧创建新数据帧?

    要将 schema 传递到 json 文件 我们这样做 from pyspark sql types import StructField StringType StructType IntegerType data schema Stru
  • Gunicorn 工作人员无论如何都会超时

    我正在尝试通过gunicorn运行一个简单的烧瓶应用程序 但是无论我做什么 我的工作人员都会超时 无论是否有针对应用程序的活动 工作人员在我设置任何内容后总是会超时timeout值到 是什么导致它们超时 当我发出请求时 请求成功通过 但工作
  • 如何在 __init__ 中使用await设置类属性

    我如何定义一个类await在构造函数或类体中 例如我想要的 import asyncio some code class Foo object async def init self settings self settings setti
  • matplotlib 图中点的标签

    所以这是一个关于已发布的解决方案的问题 我试图在我拥有的 matplotlib 散点图中的点上放置一些数据标签 我试图在这里模仿解决方案 是否有与 MATLAB 的 datacursormode 等效的 matplotlib https s
  • python multiprocessing 设置生成进程等待

    是否可以生成一些进程并将生成进程设置为等待生成的进程完成 下面是我用过的一个例子 import multiprocessing import time import sys def daemon p multiprocessing curr
  • MongoEngine 查询具有以列表中指定的前缀开头的属性的对象的列表

    我需要在 Mongo 数据库中查询具有以列表中任何前缀开头的特定属性的元素 现在我有一段这样的代码 query mymodel terms term in query terms 并且这会匹配在列表 term 上有一个项目的对象 该列表中的
  • GUI(输入和输出矩阵)?

    我需要创建一个 GUI 将数据输入到矩阵或表格中并读取此表单数据 完美的解决方案是限制输入表单仅允许float 例如 A 1 02 0 25 0 30 0 515 0 41 1 13 0 15 1 555 0 25 0 14 1 21 2
  • Java 和 Python 可以在同一个应用程序中共存吗?

    我需要一个 Java 实例直接从 Python 实例数据存储中获取数据 我不知道这是否可能 数据存储是否透明 唯一 或者每个实例 如果它们确实可以共存 都有其单独的数据存储 总结一下 Java 应用程序如何从 Python 应用程序的数据存
  • 未知错误:Chrome 无法启动:异常退出

    当我使用 chromedriver 对 Selenium 运行测试时 出现此错误 selenium common exceptions WebDriverException Message unknown error Chrome fail
  • 嵌套作用域和 Lambda

    def funct x 4 action lambda n x n return action x funct print x 2 prints 16 我不太明白为什么2会自动分配给n n是返回的匿名函数的参数funct 完全等价的定义fu
  • Django 视图中的“请求”是什么

    在 Django 第一个应用程序的 Django 教程中 我们有 from django http import HttpResponse def index request return HttpResponse Hello world
  • Pandas 组合不同索引的数据帧

    我有两个数据框df 1 and df 2具有不同的索引和列 但是 有一些索引和列重叠 我创建了一个数据框df索引和列的并集 因此不存在重复的索引或列 我想填写数据框df通过以下方式 for x in df index for y in df
  • Django REST Framework - CurrentUserDefault 使用

    我正在尝试使用CurrentUserDefault一个序列化器的类 user serializers HiddenField default serializers CurrentUserDefault 文档说 为了使用它 请求 必须作为
  • 将 Matlab 的 datenum 格式转换为 Python

    我刚刚开始从 Matlab 迁移到 Python 2 7 在读取 mat 文件时遇到一些问题 时间信息以 Matlab 的日期数字格式存储 对于那些不熟悉它的人 日期序列号将日历日期表示为自固定基准日期以来已经过去的天数 在 MATLAB
  • Protobuf 如何编码 oneof 消息结构

    对于这个 python 程序 在编码时运行 protobuf 编码会给出以下输出 0a 10 08 7f8a 0104 08 02 10 0392 0104 08 02 10 03 18 01 我不明白的是为什么8a后面有一个01 为什么9
  • pandas.read_csv 将列名移动一倍

    我正在使用位于的 ALL zip 文件here http www fec gov disclosurep PDownload do 我的目标是用它创建一个 pandas DataFrame 但是 如果我跑 data pd read csv
  • 将索引与值交换的最快方法

    考虑pd Series s s pd Series list abcdefghij list ABCDEFGHIJ s A a B b C c D d E e F f G g H h I i J j dtype object 交换索引和值并
  • pytest找不到模块[重复]

    这个问题在这里已经有答案了 我正在关注pytest 良好实践 https docs pytest org en latest explanation goodpractices html test discovery或者至少我认为我是 但是
  • 如何将Python3设置为Mac上的默认Python版本?

    有没有办法将 Python 3 8 3 设置为 macOS Catalina 版本 10 15 2 上的默认 Python 版本 我已经完成的步骤 看看它安装在哪里 ls l usr local bin python 我得到的输出是这样的
  • JSON:TypeError:Decimal('34.3')不是JSON可序列化的[重复]

    这个问题在这里已经有答案了 我正在运行一个 SQL 查询 它返回一个小数列表 当我尝试将其转换为 JSON 时 出现类型错误 查询 res db execute SELECT CAST SUM r SalesVolume 1000 0 AS

随机推荐

  • Angular_组件间通讯

    组件间通讯 1 组件间通讯 父组件向子组件输入属性用 Input amount number 2 组件输出属性 1 在发射的组件内部定义发射的EventEmitter对象 Output lastPrice EventEmitter
  • 有向图的拓扑排序

    给定一个 nn 个点 mm 条边的有向图 点的编号是 11 到 nn 图中可能存在重边和自环 请输出任意一个该有向图的拓扑序列 如果拓扑序列不存在 则输出 1 1 若一个由图中所有点构成的序列 AA 满足 对于图中的每条边 x y x y
  • CentOS和CentOS Stream的区别你知道吗?

    CentOS 8生命周期的结束 2020年年底的时候 红帽宣布CentOS 8将在一年后结束生命周期 当时这个消息在开发者圈子炸了锅 很多人以为CentOS要自此消失了 实际情况是CentOS并没有消失 只是名字更换为了CentOS Str
  • Spring Cloud Alibaba、Spring Cloud 版本升级、版本号对应情况和一些注意事项等

    参考文档 优质博客 https blog csdn net Thinkingcao article details 105652632 Spring官方文档 https spring io SpringCloud官方文档 https spr
  • 小米无线蓝牙耳机Air2 SE如何连接MacPro

    若设备可以搜索到小米真无线蓝牙耳机Air2 SE但无法配对 建议您 1 若设备连接了WiFi 2 4Ghz 由于蓝牙和WiFi共用天线 且工作在相同的频段 故当WiFi传输数据量较大时 蓝牙会受到干扰 建议关闭WiFi后再尝试配对 2 将左
  • @Scheduled参数及cron表达式解释

    Scheduled支持以下8个参数 1 cron 表达式 指定任务在特定时间执行 2 fixedDelay 表示上一次任务执行完成后多久再次执行 参数类型为long 单位ms 3 fixedDelayString 与fixedDelay含义
  • 2018年中国STEAM教育行业发展现状及发展前景分析

    转自 http www chyxx com industry 201801 609261 html STEAM 教育包括科学 Science 技术 Technology 工程 Engineering 艺术 Art 数学 Mathematic
  • glog的编译,配置,使用

    glog是Google推出的轻量级C log开源库 使用起来比较简单 自己可以下载源码直接编译 支持Windows和linux 下载编译 glog下载路径 https code google com p google glog 需要翻墙才能
  • js 根据总页数 和 规律的页面名称 动态创建分页条

    公有变量最好用明明空间限制一下 var totalPage 0 var currentPage 1 var menuType 0 var totalCount 0 var first page 首页 var prev page 上一页 va
  • mybatis实现代码自动生成

    1 在pom文件中加入代码自动生成插件
  • 光圈,焦距,工作距离与景深之间的关系。

    光圈 光圈越大 景深越小 光圈越小 景深越大 焦距 焦距越长 景深越小 焦距越短 景深越短 工作距离 工作距离越小 景深越小 工作距离越大 景深越大
  • linux和shell的关系

    shell的理解 shell翻译成壳的意思 它是包裹在linux内核外层的 一个可通过一系列的linux命令对操作系统发出相关指令的人机界面 shell可以通过其条件语句和循环语句等 把一系列linux命令结合在一起 形成一个相当于面向过程
  • Java——面向对象练习(图书管理系统的实现)

    文章目录 Java 面向对象练习 图书管理系统的实现 一 实现效果展示 1 功能简介 2 登陆界面 3 菜单界面 4 功能展示 二 具体代码实现 1 类的设计 1 创建图书相关的类 2 创建操作相关的类 1 接口的实现 2 新增书籍 3 删
  • 谷歌(Chrome)浏览器自定义插件

    准备 1 js文件 需要的功能逻辑 2 插件主入口及配置 manifest json 3 插件图标 目录结构 添加插件流程 选择插件文件夹 代码 manifest json name 百度 manifest version 2 versio
  • C语言基础-----(8)控制语句

    6 控制语句 6 1 顺序语句 c语言从主函数当中的第一条语句开始执行 6 2 选择语句 6 2 1单分支 if 表达式 语句块1 else 语句块2 step 判断表达表达式 如果表达式为真 则执行语句块1 如果表达式为假 则执行语句块2
  • mysql一键更改图片地址_利用mysql语句批量替换指定wordpress文章图片路径

    有时候当你看到一篇十分优秀的国外文章的时候 比如说十个优秀 五十个优秀的网站设计欣赏 wordpress主题下载 jquery插件下载等等 这些文章当中往往会跟随大量的示例图片供读者查看 如果这些文章很有收藏价值 你可能会直接进行翻译或转载
  • 机器学习---监督学习、无监督学习

    机器学习 什么是机器学习 两种主要类型是 监督学习和无监督学习 强化学习 监督学习 什么是监督学习 回归问题 预测连续值输出 eg 预测房价 分类问题 预测离散值输出 eg 预测肿瘤 监督学习 给算法一个数据集 其中包含了正确答案 输入x
  • Android项目中三种依赖的添加方式

    添加本地依赖 首先将所需的 jar 或者 aar 包放在libs文件夹下 方式1 右击jar包 选择Add As Library 最后sync 方式2 在app build gradle中添加本地依赖的声明 implementation f
  • MCU 常用的文件系统

    片外FLASH SPIFFS FATFS LittleFs 片上FLASH FlashDB EasyFlash
  • python3爬虫伪装代理IP

    在爬取类似 起点 色魔张大妈 这样的网站时 会被网站看出是爬虫机制 这时需要伪装成浏览器以及使用IP代理的方式来爬去正常内容 实例 import re import requests import urllib request from l