从动态内容python中获取图片

时间:2016-09-06 09:24:46

标签: python-2.7 selenium beautifulsoup

我试图在不使用硒的情况下从网址获取图片的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?

2 个答案:

答案 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 标记:

  1. 首先,您要从<a>节点中提取href而不是<p>
  2. 找到的第一个<p>子元素是<p class="il_r" id="url_domain" </p>
  3. 您可以做的是定位第5个<p>元素<a>,即图像。一种方法是var = response.find("div", id = "il_m").find_all('p')[4].find('a')