найти xpath с указанным идентификатором regex - PullRequest
0 голосов
/ 27 сентября 2019

Я пытаюсь очистить веб-страницу с использованием следующих <li id="size_name_1" ....> <li id="size_name_2"....> <li id="size_name_a". Есть ли способ найти size_name_NUMBER', например,

response.xpath('//*[@id="size_name_\d+"]') 

. Я хочу использовать регулярное выражение в поиске идентификатора.SCRAPY.

1 Ответ

0 голосов
/ 27 сентября 2019

Вы можете сделать это с помощью селекторов css, используя regex, чтобы сначала получить соответствующие идентификаторы.Я отмечаю, что вы используете скрап, но тот же принцип должен применяться.

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}"]'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...