網(wǎng)頁爬蟲 - Python使用requests庫搜到的圖片src下的url是正在加載的圖片
問題描述
我想下載http://www.chuiyao.com/manhua/3670/393022.html里面的圖片,但用下面的代碼搜到的圖片是這個http://www.chuiyao.com/static/skin5/images/pic_loading.gif。headers我是用的chrome瀏覽器network下的393022.html的Request Headers
import requestsfrom lxml import htmldef main(): url = 'http://www.chuiyao.com/manhua/3670/393022.html' headers = {'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8','Accept-Encoding':'gzip, deflate, sdch','Accept-Language':'zh-CN,zh;q=0.8,en;q=0.6,zh-TW;q=0.4','Cache-Control':'no-cache','Connection':'keep-alive','Cookie':'__cfduid=d1fd7e3291dbb9fc63a4884a0441f78ee1486866309; bdshare_firstime=1486866314583; UM_distinctid=15af3096a8336d-08f956321b6c03-1d3b6853-1fa400-15af3096a84296; qtmhhis=2017-2-21-18-47-47%5E%5E%u6597%u7834%u82CD%u7A79%5E%5E%u7B2C189%u8BDD%20%u6BD2%u9B54%u6591%5E%5E1%5E%5E393022%5E%5E3670_ShG_; Hm_lvt_1317de45b1b9f5aacfe358d1694b22f9=1488746420,1490136167,1490136167,1490136753; Hm_lpvt_1317de45b1b9f5aacfe358d1694b22f9=1490136753; CNZZDATA1254167849=49322564-1486864570-https%253A%252F%252Fwww.google.com%252F%7C1490131571','Host':'www.chuiyao.com','Pragma':'no-cache','Referer':'http://www.chuiyao.com/manhua/3670/','Upgrade-Insecure-Requests':'1','User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36' } page = requests.get(url, headers = headers) tree = html.fromstring(page.content) print(tree.xpath(’//*[@id='qTcms_pic']/@src’)) if __name__ == '__main__': main()
為什么會這樣?
問題解答
回答1:圖片是js動態(tài)加載的,你的爬蟲只是獲取了靜態(tài)頁面。
主要的加載圖片的功能在這個js文件里:
www.chuiyao.com/static/skin5/js/wdshow.js?v=20160713.1
你自己用python的相關(guān)模塊來模擬該js的功能,即可解析出圖片地址。
回答2:img 標(biāo)簽的內(nèi)容是通過調(diào)用 js 的 Show_Pic_w() 方法在頁面加載完成后動態(tài)替換的,你用 python 是獲取不到和瀏覽器一樣的頁面的
相關(guān)文章:
1. android - 用textview顯示html時如何寫imagegetter獲取網(wǎng)絡(luò)圖片2. css3 - css怎么實現(xiàn)圖片環(huán)繞的效果3. 在mac下出現(xiàn)了兩個docker環(huán)境4. javascript - 原生canvas中如何獲取到觸摸事件的canvas內(nèi)坐標(biāo)?5. css - 定位為absolute的父元素中的子元素 如何設(shè)置在父元素的下面?6. JavaScript事件7. 注冊賬戶文字不能左右分離8. javascript - jquery hide()方法無效9. html - vue項目中用到了elementUI問題10. 網(wǎng)頁爬蟲 - 用Python3的requests庫模擬登陸B(tài)ilibili總是提示驗證碼錯誤怎么辦?
