我试图在不使用硒的情况下从网址获取图片的href
def():
try:
page = urllib2.urlopen('')
except httplib.IncompleteRead, e:
page = e.partial
response = BeautifulSoup(page)
print response
var = response.find("div", {"id":"il_m"}).find('p')
但是我得到了无结果。我应该怎么做才能确定href?
答案 0 :(得分:0)
您还可以使用下载属性从 anchor 标记获取链接:
In [2]: from bs4 import BeautifulSoup
In [3]: import urllib2
In [4]: r = urllib2.urlopen('http://icecat.us/index.php/product/image_gallery?num=9010647&id=9409545&lang=us&imgrefurl=philips.com')
In [5]: soup = BeautifulSoup(r,"html.parser")
In [6]: print(soup.select_one("p a[download]")["href"])
http://images.icecat.biz/img/gallery/9010647-Philips-_FP.jpg
您还应该注意图像可能受版权保护。。在页面上。
答案 1 :(得分:0)
您没有定位正确的 p 标记:
<a>
节点中提取href而不是<p>
<p>
子元素是<p class="il_r" id="url_domain" </p>
您可以做的是定位第5个<p>
元素<a>
,即图像。一种方法是var = response.find("div", id = "il_m").find_all('p')[4].find('a')