Python: регулярное выражение для поиска связанных HTML ссылок - PullRequest
0 голосов
/ 14 апреля 2020

Мне нужна помощь в написании шаблона регулярных выражений, который может найти связанные ссылки на веб-странице.

Пример кода:

import requests,re
from bs4 import BeautifulSoup
res = requests.get('https://www.example.com')
soup = BeautifulSoup(res.text,'lxml')
links = soup.find_all('a', href=True)

# example_of_affiliate_links = ['http://example.com/click/click?p=1&t=url&s=IDHERE&url=https://www.mywebsite.com/920&f=TXL&name=electronic/ps4/','https://example.net/click/camref:IDhere/destination:https://www.mywebsite.com/product/138/sony-ps4.html']

Я хочу собрать все связанные ссылки для "mywebsite.com ", используя следующий шаблон регулярных выражений, но он не захватывает никаких ссылок.

pattern = re.compile(r'([http,https]://www.mywebsite.com\S[\.html,\.php,\&]$)')

Есть ли лучший способ сделать это?

1 Ответ

1 голос
/ 14 апреля 2020

Вот регулярное выражение, которое вы ищете:

https?://www.mywebsite.com\S*$

Что не так с вашим регулярным выражением?

([http,https]://www.mywebsite.com\S[\.html,\.php,\&]$)
  • Скобки на каждой стороне бесполезны
  • [] означает любой из этих символов , поэтому в [http,https] вы ищете один символ, который может быть "h", "t", "t "," p "," s "или" , "
  • \S захватывает только один символ, вам нужно добавить множитель после него
  • То же самое происходит для [\.html,\.php,\&] части
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...