cari

Rumah  >  Soal Jawab  >  teks badan

python - Bagaimana untuk menyemak jenis anti-crawler yang digunakan pada URL

Laman web: https://www.nvshens.com/g/22377/ Buka laman web terus dengan penyemak imbas dan kemudian klik kanan pada imej untuk memuat turunnya kemudian saya Saya menukar tajuk dan menyediakan proksi IP, tetapi ia masih tidak berfungsi. Tetapi melihat pada tangkapan paket, ia bukan data yang dimuatkan secara dinamik! ! ! Sila jawab = =

ringa_leeringa_lee2715 hari yang lalu1260

membalas semua(4)saya akan balas

  • 过去多啦不再A梦

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

    Gadis itu agak cantik.
    Ia memang boleh dibuka dengan klik kanan, tetapi selepas disegarkan, ia menjadi gambar hotlink. Secara amnya, untuk mengelakkan hotlinking, pelayan akan menyemak sama ada Referer字段,这就是为什么刷新后就不是原图的原因(刷新后Referer dalam pengepala permintaan telah berubah).

    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)
    

    balas
    0
  • 欧阳克

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

    Adakah anda terlepas sebarang parameter dengan menangkap paket semasa mendapatkan gambar?

    balas
    0
  • 我想大声告诉你

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

    Saya hanya melihat kandungan laman web dan hampir terlupa bahawa ia adalah rasmi.
    Anda boleh mengikuti semua maklumat yang anda minta

    Kemudian cubalah

    balas
    0
  • 女神的闺蜜爱上我

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

    Referer Mengikut reka bentuk laman web ini, setiap halaman harus lebih sesuai dengan tingkah laku berlagak seperti manusia, bukannya menggunakan satu Referer
    Berikut adalah kod lengkap yang boleh dijalankan untuk menangkap semua gambar di muka surat 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])

    balas
    0
  • Batalbalas