Maison  >  Questions et réponses  >  le corps du texte

python - Comment vérifier quel type d'anti-crawler est utilisé sur une URL

Site Web : https://www.nvshens.com/g/22377/. Ouvrez le site Web directement avec le navigateur puis faites un clic droit sur l'image pour la télécharger. Ensuite, l'image directement demandée par mon robot a été bloquée, et. puis j'ai changé les en-têtes et configuré un proxy IP, mais cela n'a toujours pas fonctionné. Mais en regardant la capture de paquets, il ne s’agit pas de données chargées dynamiquement ! ! ! Veuillez répondre = =

ringa_leeringa_lee2666 Il y a quelques jours1205

répondre à tous(4)je répondrai

  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-12 09:29:51

    La fille est plutôt jolie.
    Il peut en effet être ouvert par un clic droit, mais après actualisation, il devient une image hyperliée. Généralement, pour éviter les hotlinking, le serveur vérifiera si le Referer字段,这就是为什么刷新后就不是原图的原因(刷新后Referer dans l'en-tête de la requête a changé).

    img_url = "https://t1.onvshen.com:85/gallery/21501/22377/s/003.jpg"
    r = requests.get(img_url, headers={'Referer':"https://www.nvshens.com/g/22377/"}).content
    with open("00.jpg",'wb') as f:
        f.write(r)
    

    répondre
    0
  • 欧阳克

    欧阳克2017-06-12 09:29:51

    Avez-vous manqué des paramètres en capturant le paquet lors de la prise de la photo ?

    répondre
    0
  • 我想大声告诉你

    我想大声告诉你2017-06-12 09:29:51

    Je regardais juste le contenu du site et j'ai presque oublié qu'il était officiel.
    Vous pouvez suivre toutes les informations que vous avez demandées

    Alors essayez-le

    répondre
    0
  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-12 09:29:51

    Référent Selon la conception de ce site Web, chaque page devrait être plus conforme au comportement de se faire passer pour un être humain, au lieu d'utiliser un seul référent
    Ce qui suit est le code complet qui peut être exécuté pour capturer toutes les images à la page 18

    # Putting all together
    def url_guess_src_large (u):
        return ("https://www.nvshens.com/img.html?img=" +  '/'.join(u.split('/s/')))
    # 下载函数
    def get_img_using_requests(url, fn ):
        import shutil
        headers ['Referer'] = url_guess_src_large(url) #"https://www.nvshens.com/g/22377/" 
        print (headers)
        response = requests.get(url, headers = headers, stream=True)
        with open(fn, 'wb') as out_file:
            shutil.copyfileobj(response.raw, out_file)
        del response
    
    import requests
    # 用xpath擷取內容
    from lxml import etree
    url_ = 'https://www.nvshens.com/g/22377/{p}.html'  
    headers = {
        "Connection" : "close",  # one way to cover tracks
        "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2900.1 Iron Safari/537.36}"
    }
    
    for i in range(1,18+1):
        url = url_.format(p=i)
        r = requests.get(url, headers=headers)
        html = requests.get(url,headers=headers).content.decode('utf-8')
        selector = etree.HTML(html)
        xpaths = '//*[@id="hgallery"]/img/@src'
        content = [x for x in selector.xpath(item)]
        urls_2get = [url_guess_src_large(x) for x in content]
        filenames = [os.path.split(x)[0].split('/gallery/')[1].replace("/","_") + "_" + os.path.split(x)[1] for x in urls_2get]
        for i, x in enumerate(content):
            get_img_using_requests (content[i], filenames[i])

    répondre
    0
  • Annulerrépondre