Python之JavaScript逆向系列——1、品易IP代理的使用

举报
红目香薰 发表于 2023/12/19 13:39:13 2023/12/19
【摘要】 ​​编辑​Python之JavaScript逆向系列——1、品易IP代理的使用目录Python之JavaScript逆向系列——1、品易IP代理的使用前言环境准备正文api工具前言大家好,本系列文章主要为大家提供的价值方向是网络信息获取,自动化的提取、收集、下载和记录互联网上的信息,加之自身分析,可以让价值最大化。整个内容中不会涉及到过为敏感的内容。在这个AI+云计算+大数据时代,我们眼睛所...

编辑

Python之JavaScript逆向系列——1、品易IP代理的使用


目录

Python之JavaScript逆向系列——1、品易IP代理的使用

前言

环境准备

正文

api工具



前言

大家好,本系列文章主要为大家提供的价值方向是网络信息获取,自动化的提取、收集、下载和记录互联网上的信息,加之自身分析,可以让价值最大化。整个内容中不会涉及到过为敏感的内容。

在这个AI+云计算+大数据时代,我们眼睛所看到的百分之九十的数据都是通过页面呈现出现的,不论是PC端、网页端还是移动端,数据渲染还是基于HTML+JavaScript进行的,而大多数的数据都是通过request请求后台API接口动态渲染的。而想成功的请求成功互联网上的开放/公开接口,必须知道它的【URL】、【Headers】、【Params】、【Body】等数据是如何生成的。我们需要了解浏览器开发者工具的功能,入门JS逆向,入门后还需要掌握例如如何【反编译js混淆】等内容,为了避免封本机IP,还需要对每次访问的IP进行代理,当我们拥有了JS逆向的能力后,根据JS所返回的动态请求参数信息便可以进行Python的具体信息获取操作,需要的知识点非常的多,故而本系列文章理论+实践会达到上百篇的文章,这篇文章是总篇,为了方便大家来直接查找所有知识点,建议之间关注收藏本篇,期望能给大家带来更高的价值。

环境准备

系统环境:win11

开发工具:PyCharm: the Python IDE for Professional Developers by JetBrains

IP代理:品易HTTP - 代理IP日更400万 - 为企业提供HTTP代理IP定制服务

api工具:Eolink - 一体化API在线管理平台_API接口管理_接口自动化测试

数据库:MySQL5.7.32——阿里云RDS数据库

主要python库:requests、PyExecJS、parsel

正文

基本上所有的网站都做了访问限制,例如每个ip每分钟能访问5次。如果超过这个数量就锁了你的IP,面对这样的问题我们就需要使用IP代理来处理这个问题。这样就不会出现需要时间限制来操作了。可以看到,我们所有的代码都有引入import time,作用就是解决这个问题:

time.sleep(random.randint(10, 30))

api工具

哪个划算用哪个品易HTTP - 代理IP日更400万 - 为企业提供HTTP代理IP定制服务

我这里用过很多个门类的,一般都是按照ip数量卖的,这个工具是按照流量卖的,挺划算。

编辑

注册完毕之后会送1G的流量,我们可以直接获取:

这里需要先签订一些认证信息,用微信扫一下认证,挺方便的。

添加白名单操作:

https://pycn.yapi.py.cn/index/index/save_white?neek=9***6&appkey=346609f9b099602f4b4704e502e231c7&white=您的ip

更换成自己本地的wwwip地址即可。添加完毕别着急,大改需要等个10来分钟就能正常访问了。

正常获取成功。

我们高速访问一下。如果看是否会被屏蔽。

示例函数:(没有任何休息的随机时间)

def GetUrl(url):
    try:
        html = requests.get(url, headers=headers, proxies=getIP())
        sel = parsel.Selector(html.text)
        # 获取主Title
        mTitle.append(sel.css(".book-meta h1::text").getall()[0])
        href = sel.css(".volume-list ul a::attr(href)").getall()
        # 获取标题
        text = sel.css(".volume-list ul a::text").getall()
        for item1, item2 in zip(href, text):
            a_href_list = ["", ""]
            a_href_list[0] = item1
            a_href_list[1] = item2
            a_href_arr.append(a_href_list)
        print("列表获取完毕")
        exit(0)
    except:
        print("解析异常")

示例效果:

实验完毕,效果非常良好。


完整获取示例,需要自己更换以下你自己的获取地址。

import requests


def getIP():
    # 需要更换成你的获取ip链接
    url = "http://zltiqu.pyhttp.taolop.com/getip?count=1&neek=****&type=1&yys=0&port=1&sb=&mr=1&sep=1"
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.289 Safari/537.36"
    }
    result = requests.get(url, headers=headers)
    resIP = result.text.split(":")
    proxyHost = resIP[0]
    proxyPort = resIP[1].replace("\r\n", "")
    proxyMeta = "%(host)s:%(port)s" % {

        "host": proxyHost,

        "port": proxyPort,

    }
    proxies = {

        "http": proxyMeta,

        "https": proxyMeta

    }
    return proxies

调用:

温馨提示:

官网给的操作代码是2.0版本python的操作方式,可以直接复制我的用法。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。