python保存网页到本地,图片不显示可能是什么原因。


我尝试保存一个网页到本地发现图片在本地是无法显示的而我原本在保存糗事百科的网页是可以正常显示,所以我比较困惑是代码的问题还是网站的限制,我对于html以及css和js都不了解。


 import urllib.request
for i in range(1,9):
    url='http://rayshen.com/plus/list.php?tid=46&TotalResult=142&PageNo='+str(i)
    print(url)
    headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.125 Safari/537.36',
    'Referer':'http://rayshen.com/plus/list.php?tid=46&TotalResult=142&PageNo=8'}
    Request=urllib.request.Request(url,headers =headers)
    f=open(str(i)+'.html','wb')
    content=urllib.request.urlopen(Request).read()
    f.write(content)
    f.close()

这是我保存糗事百科的代码图片是可以正常显示,而我保存 http://rayshen.com/plus/list.php?tid=46&TotalResult=142&PageNo... 网页的时候图片确实无法显示的。我想知道是我自己的代码具有缺陷还是什么其他的原因,保存后的网页如图显示。 图片描述

python3.x HTML

触手菊花兽 9 years, 10 months ago

基本上是防盗链设置导致的,服务端检测到http请求头referer中的host不符合要求,拒绝请求。

可曾记得爱 answered 9 years, 10 months ago

你要抓的图片的连接,就是先下载 http://rayshen.com/plus/list.php?tid=46&TotalResult=142&PageNo... ,然后用bs4或者其他库分析html,把 标签里面的src提取出来在下载保存。

teddy answered 9 years, 10 months ago

Your Answer