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

网站访问人数太多,怎么才能进入_网址挖掘老规矩,先上代码:#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字典里都没用。。。。
我想可能是这个网站太多人爬了吧,维护人员可能搞了一套比较复杂的验证系统,但是我水平有限,实在想不出来,求大神分析分析啊。

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • php addslashes函数已经没用了_JAVA substring

    php addslashes函数已经没用了_JAVA substringPHP为了安全性,所以引入了个magic_quotes_gpc=On的功能,可以不需要做任何处理就能直接把单引号插入数据库中,那么对于Off时,则需要考虑单引号的问题了,而不是一味地信任运行环境。当magic_quotes_gpc=On时,使用了addslashes()处理后的数据在数据库中将以\’形式保存,如果此时直接输出的话,就会发现比自己期待的内容多了个\,因此stripslashe…

    2022年9月25日
    4
  • 咸鱼ZTMR实例—PS2手柄

    咸鱼ZTMR实例—PS2手柄咸鱼ZTMR实例—PS2手柄主控板:ZTMR开发板PS2手柄PS2手柄是游戏机的遥控手柄。psx系列游戏主机在全球很是畅销。不知什么时候便有人打起PS2手柄的主意,破解了通讯协议,使得手柄可以接在其他器件上遥控使用,比如遥控我们熟悉的机器人。突出的特点是现在这款手柄性价比极高。按键丰富,方便扩展到其它应用中。PS2由手柄与接收器两部分组成,手柄主要负责发送按键信息。都接通电…

    2022年5月1日
    60
  • LinkedList和ArrayList的区别[通俗易懂]

    LinkedeList和ArrayList都实现了List接口,但是它们的工作原理却不一样。它们之间最主要的区别在于ArrayList是可改变大小的数组,而LinkedList是双向链接串列(doubly LinkedList)。ArrayList更受欢迎,很多场景下ArrayList比LinkedList更为适用。这篇文章中我们将会看看LinkedeList和ArrayList的不同,而且我们试

    2022年3月10日
    51
  • jsonArray转list<map>

    jsonArray转list<map>直接转是转不了的需要先得到jsonArray循环得到jsonObject然后保存到map再添加到listList&lt;Map&lt;String,String&gt;&gt;list=newArrayList&lt;Map&lt;String,String&gt;&gt;();…

    2022年6月23日
    132
  • JavaWeb之HttpSession

    JavaWeb之HttpSessionHttpSession一、概述HttpSession是由JavaWeb提供的,用来会话跟踪的类。session是服务器端对象,保存在服务器端!!!HttpSession是Servlet三大域对象之一,所以它也有setAttribute()、getAttribute()、removeAttribute()方法。HttpSession底层依赖Cookie,或是URL重写!二、HttpSe…

    2022年7月12日
    22
  • js数组删除指定元素splice_js找出数组中最大的数

    js数组删除指定元素splice_js找出数组中最大的数js自带删除元素方法有:1.splice方法//获取元素在数组的下标Array.prototype.indexOf=function(val){ for(vari=0;i<this.length;i++){ if(this[i]==val) { returni; }; } return-1;};//根据数组的下标,删除该下…

    2022年10月1日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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