假设我正在抓取某个网页,并且希望在该网页上选择某个图像。正如您可以根据其类名查找元素一样,我想通过其src
标签选择一个图像。如何选择已经知道src
标签的图片?
即我想选择标签为src
的图像:
https://assets.bandsintown.com/images/pin.svg
答案 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']