使用BeautifulSoup通过src标签搜索元素

时间:2019-04-29 19:49:49

标签: python xpath web-scraping beautifulsoup css-selectors

假设我正在抓取某个网页,并且希望在该网页上选择某个图像。正如您可以根据其类名查找元素一样,我想通过其src标签选择一个图像。如何选择已经知道src标签的图片?

即我想选择标签为src的图像:

https://assets.bandsintown.com/images/pin.svg

4 个答案:

答案 0 :(得分:3)

您可以按任意属性进行搜索;这应该工作:

//Add an event to check
ChromeBrowser.IsBrowserInitializedChanged += ChromeBrowser_IsBrowserInitializedChanged;

//Declare the event method to be called
private void ChromeBrowser_IsBrowserInitializedChanged(object sender, IsBrowserInitializedChangedEventArgs e)
    {            
        if (e.IsBrowserInitialized)
        {
            ChromeBrowser.ShowDevTools();
        }
    }

答案 1 :(得分:1)

@Blorgbeard的答案显示了Beautifulsoup方法,而使用Selenium时,您可以使用以下任一Locator Strategies来达到相同的效果:

  • css_selector

    my_elements = driver.find_elements_by_css_selector("[src=\"https://assets.bandsintown.com/images/pin.svg\"]")
    
  • xpath

    my_elements = driver.find_elements_by_xpath("//*[@src=\"https://assets.bandsintown.com/images/pin.svg\"]")
    

答案 2 :(得分:0)

使用Beautifulsoup,您可以通过多种方式进行操作。您可以使用css选择器,也可以使用正则表达式。

CSS选择器

for item in soup.select('img[src="https://assets.bandsintown.com/images/pin.svg"]'):
   print(item['src'])

正则表达式和find_all

import re
for item in soup.find_all('img',src=re.compile('https://assets.bandsintown.com/images/pin.svg')):
   print(item['src'])

答案 3 :(得分:0)

您通过src值表示了一张图片。使用select_one。更少的工作,您只需要一个属性选择器。

soup.select_one('[src="https://assets.bandsintown.com/images/pin.svg"]')['src']