Python 查找具有指定ID regex的xpath
我正在尝试使用以下方法刮取网页:Python 查找具有指定ID regex的xpath,python,xpath,web-scraping,Python,Xpath,Web Scraping,我正在尝试使用以下方法刮取网页:您可以使用css选择器,而不是使用正则表达式首先获取适当的id。我确实注意到您使用的是scrapy,但同样的原则也应该适用 from bs4 import BeautifulSoup import re html = ''' <html> <head></head> <body> <li id="size_name_1" > me </li> <li id="size_na
您可以使用css选择器,而不是使用正则表达式首先获取适当的id。我确实注意到您使用的是scrapy,但同样的原则也应该适用
from bs4 import BeautifulSoup
import re
html = '''
<html>
<head></head>
<body>
<li id="size_name_1" > me </li>
<li id="size_name_2" > and me </li>
<li id="size_name_a" > but not me :-(</li>
</body>
</html>
'''
p = re.compile(r'id="(size_name_\d+)"')
ids = p.findall(html)
soup = bs(html, 'lxml')
for i in ids:
print(soup.select_one(f'li[id="{i}"]'))
从bs4导入美化组
进口稀土
html=“”
我
和我
但不是我:-(
'''
p=re.compile(r'id=“(size\u name\ud+)”)
ids=p.findall(html)
soup=bs(html,“lxml”)
对于ID中的i:
打印(soup.select_one(f'li[id=“{i}”]”)
如果需要在id属性中查找所有包含size\u name的id,请尝试以下操作:“/*[包含(@id,'size\u name')]”。此操作应返回所有包含这些元素的元素id@Sureshmani我可以,但这也会返回带字母的元素。您不能在XPath中使用类似的正则表达式。您正在寻找,但我不知道scrapy是否支持XPath 2.0。您需要使用正则表达式还是只能使用XPath?
from bs4 import BeautifulSoup
import re
html = '''
<html>
<head></head>
<body>
<li id="size_name_1" > me </li>
<li id="size_name_2" > and me </li>
<li id="size_name_a" > but not me :-(</li>
</body>
</html>
'''
p = re.compile(r'id="(size_name_\d+)"')
ids = p.findall(html)
soup = bs(html, 'lxml')
for i in ids:
print(soup.select_one(f'li[id="{i}"]'))