Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如果没有数据,尝试使用bs4跳过属性_Python_Import_Beautifulsoup_Bs4 - Fatal编程技术网

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

Python 如果没有数据,尝试使用bs4跳过属性,python,import,beautifulsoup,bs4,Python,Import,Beautifulsoup,Bs4,我正试图写一个程序,将数据从一个网址和格式,以便我可以复制到另一个程序。我已经让一切正常,除了如果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&am

我正试图写一个程序,将数据从一个网址和格式,以便我可以复制到另一个程序。我已经让一切正常,除了如果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>')
导入请求,系统,网络浏览器,bs4 res=requests.get('http://hzws.selco.info/prototype.php?type=new-到达时间&lib=nor&collect=Bnewnf、Bnewmys、Bnewf、Bnewsf&days=14天&key=7a8adfa9aydfa999797af') res.为_状态提高_() 汤=bs4.BeautifulSoup(res.text,“lxml”) img=soup.select('imagelink')#为什么这个不会拉任何东西?!?!?!?! link=soup.select('cataloglink') 长度=最小值([14,长度(img)]) 对于范围内的i(长度): img1=img[i].getText() link1=link[i].getText() 打印(“”+link1+img1+“”)
现在,无论是否有imagelink连接到它,它都会打印所有URL。我尝试了很多不同的方法,如果没有img src,我会让它跳过一个项目。有什么想法吗?

看看,看起来“lxml”实际上是一个HTML解析器。您应该将其替换为“lxmlxml”,因为您正试图刮取一个xml页面。这应该可以工作。

我在浏览器中打开了该url,但没有名为
'imagelink'
的标记。您的目标是获得所有“img src”链接,即
'img src=”http://..“
”是
imagelink
a
class
?为什么不尝试使用
img=soup.find('img',{'class':'imagelink
})`然后?抱歉!我应该指定。imagelink位于页面源的xml中。在select中运行该选项是唯一可以让它打印任何内容的方法。尝试获取绑定到URL的img src链接。和soup.find返回了一个错误:“NoneType”类型的对象没有len()谢谢你的回复!我替换了它,然后运行了它,但是现在根本没有打印。程序只是运行,然后什么都没有…注意XML是区分大小写的。
imagelink
不会被识别,
imagelink
会被识别。这同样适用于
cataloglink
。你应该将它改为
cataloglink
。哦!太好了!我明白了t打印所有内容。有没有办法让它只打印同时包含
img src
CatalogLink
字符串?在打印语句之前,您需要检查
img1
link1
是否不是空字符串。这应该跳过可能的空
ImageLink
Catal>ogLink
括号。这是个好主意!我正在尝试,但是没有用。长度=min([14,len(img)]范围内的I(长度):img1=img[I]。getText()link1=link[I]。getText()如果img1或link1==“”:下一个(长度)其他:打印(“”+link1+img1+“”)抱歉,我是新来的,不太确定如何在评论中格式化