无法筛选图像的美化组结果

2024-04-26 01:22:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试获取网页上图像的URL并使用以下代码:

import httplib2
from BeautifulSoup import BeautifulSoup, SoupStrainer

http = httplib2.Http()
status, response = http.request('URL')
for link in BeautifulSoup(response, parseOnlyThese=SoupStrainer('img')):
        if "visibility:hidden" not in link:
                print "IMAGE PATH: "+link['src']

我想过滤到不可见图像的链接,比如:

^{pr2}$

但是我不能过滤“link”变量。如果总是通过。在

链接变量是什么类型的?串?我能把它转换成字符串类型吗? 请问我该怎么做? 非常感谢。在

编辑: 谢谢梁先生 我试着用你给出的构造器: 美丽之声(回应,'html.parser',parse only=SoupStrainer('img') 但这对我来说失败了: 回溯(最近一次呼叫): 文件“getLinksFromPage3.py”,第10行,输入 在beauthulsoup中的链接(响应,'html.parser',parse_only=SoupStrainer('img')): 文件“/usr/lib/python2.7/dist-packages/美化组.py“,第1522行,ininit BeautifulStoneSoup.init(self,*args,**kwargs) TypeError:init()获取了意外的关键字参数“parse\only”


Tags: in图像importhttpurl类型onlyimg
2条回答

谢谢梁先生。 我也不得不换成bs4。在

import httplib2
from bs4 import BeautifulSoup, SoupStrainer

http = httplib2.Http()
status, response = http.request('URL')

for link in BeautifulSoup(response, 'html.parser', parse_only=SoupStrainer('img')):
    if 'style' in link.attrs:
        if "visibility:hidden" not in link['style']:
            print link['src']
    else:
        print link['src']

使用tag.attrs首先获取标签上的属性,然后过滤属性。下面的代码可以工作。在

另外,你应该定义哪个解析器适合这种情况,这样会得到更好的结果。在

for link in BeautifulSoup(response, 'html.parser', parse_only=SoupStrainer('img')):
    if 'style' in link.attrs:
        if "visibility:hidden" not in link['style']:
            print link['src']
    else:
        print link['src']

相关问题 更多 >

    热门问题