Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.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
Html 如何创建WebCrabe图像链接选项卡_Html_Python 3.x_Beautifulsoup_Python Requests_Python Requests Html - Fatal编程技术网

Html 如何创建WebCrabe图像链接选项卡

Html 如何创建WebCrabe图像链接选项卡,html,python-3.x,beautifulsoup,python-requests,python-requests-html,Html,Python 3.x,Beautifulsoup,Python Requests,Python Requests Html,我正在尝试浏览图片标签,这样我就可以得到我可以使用的链接,这样我就可以直接进入我正在制作的项目的图片 问题是,每当我尝试编写“print(soup.find('a',class_uq='qs')”时,如果没有输出,它就会给出一个输出 我遇到的另一个问题是,其他选项卡(如“视频”和“新闻”选项卡)的标签相同,但链接不同,因此我如何区分这两个选项卡 图像链接的HTML 我希望我能在这里放一个截图,因为这很难理解 图像标签 <div class="hdtb-mitem hdtb-imb" ari

我正在尝试浏览图片标签,这样我就可以得到我可以使用的链接,这样我就可以直接进入我正在制作的项目的图片

问题是,每当我尝试编写“print(soup.find('a',class_uq='qs')”时,如果没有输出,它就会给出一个输出

我遇到的另一个问题是,其他选项卡(如“视频”和“新闻”选项卡)的标签相同,但链接不同,因此我如何区分这两个选项卡

图像链接的HTML 我希望我能在这里放一个截图,因为这很难理解

图像标签

<div class="hdtb-mitem hdtb-imb" aria-selected="false" role="tab"><a class="q qs" href="/search?q=dogs&amp;safe=active&amp;client=safari&amp;rls=en&amp;source=lnms&amp;tbm=isch&amp;sa=X&amp;ved=0ahUKEwiqhrOi06zkAhVFVRUIHeBbATwQ_AUIESgB"><span class="HF9Klc ZYMsjf" style="height:16px;width:16px"><svg focusable="false" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M0 0h24v24H0z" fill="none"></path><path d="M14 13l4 5H6l4-4 1.79 1.78L14 13zm-6.01-2.99A2 2 0 0 0 8 6a2 2 0 0 0-.01 4.01zM22 5v14a3 3 0 0 1-3 2.99H5c-1.64 0-3-1.36-3-3V5c0-1.64 1.36-3 3-3h14c1.65 0 3 1.36 3 3zm-2.01 0a1 1 0 0 0-1-1H5a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h7v-.01h7a1 1 0 0 0 1-1V5z"></path></svg></span>Images</a></div>

图像链接的HTML

<a class="q qs" href="/search?q=dogs&amp;safe=active&amp;client=safari&amp;rls=en&amp;source=lnms&amp;tbm=isch&amp;sa=X&amp;ved=0ahUKEwiqhrOi06zkAhVFVRUIHeBbATwQ_AUIESgB"><span class="HF9Klc ZYMsjf" style="height:16px;width:16px"><svg focusable="false" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M0 0h24v24H0z" fill="none"></path><path d="M14 13l4 5H6l4-4 1.79 1.78L14 13zm-6.01-2.99A2 2 0 0 0 8 6a2 2 0 0 0-.01 4.01zM22 5v14a3 3 0 0 1-3 2.99H5c-1.64 0-3-1.36-3-3V5c0-1.64 1.36-3 3-3h14c1.65 0 3 1.36 3 3zm-2.01 0a1 1 0 0 0-1-1H5a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h7v-.01h7a1 1 0 0 0 1-1V5z"></path></svg></span>Images</a>

视频标签

<div class="hdtb-mitem hdtb-imb" aria-selected="false" role="tab"><a class="q qs" href="/search?q=dogs&amp;safe=active&amp;client=safari&amp;rls=en&amp;source=lnms&amp;tbm=vid&amp;sa=X&amp;ved=0ahUKEwiqhrOi06zkAhVFVRUIHeBbATwQ_AUIEigC"><span class="HF9Klc ZYMsjf" style="height:16px;width:16px"><svg focusable="false" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="M0 0h24v24H0z" fill="none"></path><path clip-rule="evenodd" d="M10 16.5l6-4.5-6-4.5v9zM5 20h14a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1H5a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1zm14.5 2H5a3 3 0 0 1-3-3V4.4A2.4 2.4 0 0 1 4.4 2h15.2A2.4 2.4 0 0 1 22 4.4v15.1a2.5 2.5 0 0 1-2.5 2.5z" fill-rule="evenodd"></path></svg></span>Videos</a></div>

HTML视频链接

<a class="q qs" href="/search? q=dogs&amp;safe=active&amp;client=safari&amp;rls=en&amp;source=lnms&amp;tbm=vid&amp;sa=X&amp;ved=0ahUKEwiqhrOi06zkAhVFVRUIHeBbATwQ_AUIEigC"><span class="HF9Klc ZYMsjf" style="height:16px;width:16px"><svg focusable="false" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="M0 0h24v24H0z" fill="none"></path><path clip-rule="evenodd" d="M10 16.5l6-4.5-6-4.5v9zM5 20h14a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1H5a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1zm14.5 2H5a3 3 0 0 1-3-3V4.4A2.4 2.4 0 0 1 4.4 2h15.2A2.4 2.4 0 0 1 22 4.4v15.1a2.5 2.5 0 0 1-2.5 2.5z" fill-rule="evenodd"></path></svg></span>Videos</a>


你可以看到图像和视频选项卡的标签是相同的,我只有一个来检索其中一个,我该怎么做呢,我只想链接到图像选项卡而不是视频选项卡。

如果我们看到所有链接,我们可以注意到
tbm=vid
存在于视频链接中,而
tbm=isch
存在于图像链接中。
我们可以使用Python列表理解从页面中删除所有链接,然后使用过滤器获取所需数据

img_tag = [i for i in soup.find_all('a')] 
此代码返回所有
a
链接

img_tag = [i for i in soup.find_all('a') if 'tbm=isch' in i.get('href')] 
在这里,如果I.get('href')中的'tbm=isch',我将在Python列表理解中使用过滤器
,并且此代码仅通过图像链接返回
List

无论如何,为您工作的代码

from bs4 import BeautifulSoup 
img_tag = [i for i in soup.find_all('a') if 'tbm=isch' in i.get('href')] 

如果您将小html节等缩进4个空格,它们将被正确格式化。或者突出显示并按Ctrl+K。您可以共享您正在使用的url吗?您也可以通过使用代码片段工具插入html。我修复了它,您现在可以看到html内容。选择一个('a:contains(Images)['href']?感谢您提供这段代码片段,它可能会提供一些有限的、即时的帮助。A将通过说明为什么这是一个很好的问题解决方案来极大地提高其长期价值,并使其对未来有其他类似问题的读者更有用。请在您的回答中添加一些解释,包括您所做的假设.