如果没有数据,尝试使用bs4跳过属性

时间:2017-06-30 17:01:23

标签: python import beautifulsoup bs4

我正在尝试编写一个程序,该程序将从URL中提取数据并对其进行格式化,以便我可以复制到另一个程序中。我已经完成了所有工作,但如果imagelink标签中没有img src,我就无法跳过项目。

import requests, sys, webbrowser, bs4
res = requests.get('http://hzws.selco.info/prototype.php?type=new-arrivals&lib=nor&collect=Bnewnf,Bnewmys,Bnewf,Bnewsf&days=14&key=7a8adfa9aydfa999997af')
res.raise_for_status()

soup = bs4.BeautifulSoup(res.text, "lxml")

img = soup.select('imagelink') #why won't this pull anything?!?!?!?!
link = soup.select('cataloglink')

length = min([14, len(img)])
for i in range(length):
  img1 = img[i].getText()
  link1 = link[i].getText()
  print('<div>' + link1 + img1 + '</a></div>')

现在,无论是否附加了图像链接,都会打印所有网址。如果没有img src,我已经尝试过很多不同的东西让它跳过一个项目。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

查看BS4 docs,看起来“lxml”实际上是一个HTML解析器。您应该用“lxml-xml”替换它,因为您正在尝试刮取XML页面。这应该有效。