网站访问人数太多,怎么才能进入_网址挖掘

网站访问人数太多,怎么才能进入_网址挖掘老规矩,先上代码:#coding=utf-8importosimportrequestsimporttimefromPILimportImagefromioimportBytesIOfromlxmlimportetree#先定义一个opener函数:defopen_mn_web(url):try:headers=…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

老规矩,先上代码:

# coding=utf-8


import os
import requests
import time
from PIL import Image
from io import BytesIO
from lxml import etree


# 先定义一个opener函数:
def open_mn_web(url):
    try:
        headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36',
                   'Cookie': 'adClass0803 = 2;Hm_lvt_91a405e20ecacb7d51b80c9e4804c045 = 1557565685, 1557565698, 1557593627, 1557738534;Hm_lpvt_91a405e20ecacb7d51b80c9e4804c045 = 1557758918',
                   'Referer': url}
        response = requests.get(url, headers=headers)
        response.encoding = 'gb2312'
        print(response.text)
        if response.status_code == 200:
            return response.content
        return None
    except RecursionError:
        return None


def parse_mn_web(html):
    htmls = etree.HTML(html)
    img_xpath = '//div[contains(@class ,"picsbox")]//img/@src'
    class_xpath = '//div[@class="t1"]/a[2]/text()'
    result = htmls.xpath(class_xpath) + htmls.xpath(img_xpath)
    return result


def save_img(data, offset):
    path_root = r'E:\7160mn\mn_img'
    path = os.path.join(path_root, data[0], str(offset))
    if not os.path.exists(path):
        os.makedirs(path)
    img_temp = Image.open(BytesIO(data[1].content))
    img_name = data[1][-15:-1]
    img_temp.save(path + img_name, quality=95)
    for i in range(0, 101, 2):
        time.sleep(0.1)
        char_num = i // 2  # 打印多少个'*'
        per_str = '\r%s%% : %s\n' % (i, '[' * char_num) if i == 100 else '\r%s%% : %s' % (i, '[' * char_num)
        print(per_str, end='', flush=True)


def main(offset):
    url = 'https://www.7160.com/meinv/' + str(offset) + '/'
    html = open_mn_web(url)
    n = 2
    while html:
        data = parse_mn_web(html)
        save_img(data, offset)
        url = url + 'index_' + str(n) + '.html'
        html = open_mn_web(url)
        n = n + 1


if __name__ == '__main__':
    for k in range(1, 99999):
        main(k)


Jetbrains全家桶1年46,售后保障稳定

运行时发现request返回的html页面不完整,需要的部分,那个class为picsbox picsboxcenter的div没有内容;
我开始怀疑是异步加载,或者是js渲染,可是打开chorme自带的控制台之后发现network获取的html是完整的,而且没有xhr文件。后面又用selenium模拟浏览器操作,还是不行。我把chorme浏览器获得的完整header信息都复制到headers字典里都没用。。。。
我想可能是这个网站太多人爬了吧,维护人员可能搞了一套比较复杂的验证系统,但是我水平有限,实在想不出来,求大神分析分析啊。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/219602.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • java多线程—Thread、Runnable和Callable区别

    多线程编程优点进程之间不能共享内存,但线程之间共享内存非常容易。系统创建线程所分配的资源相对创建进程而言,代价非常小。Java中实现多线程有3种方法:继承Thread类实现Runnable接口实现Callable接口(参考<Java编程思想(第4版)> 21.2.4章节,原来一直以为是2种,后来发现是3种)回到顶部第一种实现方法—继承Thread类继承Thread类,需要覆盖方法r…

  • Python 技巧篇-pip卸载python库实例演示,查看pip命令大全方法[通俗易懂]

    Python 技巧篇-pip卸载python库实例演示,查看pip命令大全方法[通俗易懂]Python技巧篇-pip卸载python库实例演示,查看pip命令大全方法。因为安装的PyHook3没安装对吧,有点问题,就想着把它卸载掉,然后再重新安装一个,那应该怎么卸载呢?非常简单,就是pipuninstallxxx,正好和我们安装时的pipinstallxxx对应,下面还有一个确定操作,填y就是继续了,n就是取消了。python库卸载演示。cmd直接输入pip,回车就可以看到pip的命令大全了。

    2022年10月18日
  • pod Evicted的状态究竟是何人所为

    pod Evicted的状态究竟是何人所为微信公众号:运维开发故事,作者:姜总背景今天发现好多pod的状态都是Evicted,然后我没有监控的权限,本来想看看grafana上监控图是否出现了特殊情况,无奈没权限看。因为我发现pod出现大量的Evicted状态的时候,查看pod所在的node节点,距离当时发生Evicted的时间已经是7小时之久了。因此可能会存在一种原因:发生了Evicted的时候的确磁盘已经超过默认的kubelet的资源预留参数了。但是问题发生后,触发了阈值,已经回收了磁盘空间,导致我看的时候磁盘空间已经恢复。在每个K.

  • C#下使用XmlDocument详解

    C#下使用XmlDocument详解XML在开发中作为文件存储格式、数据交换的协议用的非常普遍,各个编程语言有都支持。W3C也制定了XMLDOM的标准。在这里主要介绍下.Net中的XmlDocument,包括xml读取和写入等功能。一、Xml的加载读取1、数据等准备Xml测试数据:-读取的数据,我们定义了一个实体类LocationCamera,用来保存Xml解析后的数据:public

  • 测试知识整理「建议收藏」

    测试知识整理「建议收藏」测试流程:需求分析–>测试设计(测试计划,测试用例)–>执行测试–>提交BUG–>测试总结测试过程:单元测试、集成测试、系统测试、验收测试单元测试属于白盒测试

  • Java代码 打印九九乘法表

    Java代码 打印九九乘法表Java打印九九乘法表publicclassFor_Demo04{publicstaticvoidmain(String[]args){//打印99乘法表for(intj=1;j<10;j++){for(inti=1;i<10;i++){if(i<=j){

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号