我想下载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 requests
from lxml import html
def 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()
为什么会这样?
高洛峰2017-04-18 10:30:10
사진은 js에 의해 동적으로 로드되며 크롤러는 정적 페이지만 가져옵니다.
이미지를 로드하는 주요 기능은 다음 js 파일에 있습니다.
www.chuiyao.com/static/skin5/js/wdshow.js?v=20160713.1
파이썬 관련 모듈을 사용해 js의 기능을 시뮬레이션하고, 이미지 주소를 파싱할 수 있습니다.
PHP中文网2017-04-18 10:30:10
img
태그의 내용은 페이지가 로드된 후 js
의 Show_Pic_w()
메서드를 호출하여 동적으로 대체됩니다. python
을 사용하면 브라우저와 동일한 페이지가 표시되지 않습니다<🎜. >