Я работаю над очисткой ссылок с сайта фермы рождественских елок. Сначала я использовал этот урок метод , чтобы получить все ссылки. Затем я заметил, что нужные мне ссылки не ведут с правильным протоколом передачи гипертекста, поэтому я создал переменную для объединения. Сейчас я пытаюсь создать оператор if
, который захватывает каждую ссылку и ищет любые два символа, за которыми следует «xmastrees. php». Если это правда, то моя конкатенационная переменная в начале. Если ссылка не содержит указанный текст c, она удаляется. Например, NYxmastrees.php
будет http://www.pickyourownchristmastree.org/NYxmastrees.php
, а ../disclaimer.htm
будет удалено. Я пробовал несколько способов, но, похоже, не могу найти правильный.
Вот то, что у меня есть в настоящее время, и я продолжаю сталкиваться с синтаксической ошибкой: del. Я закомментировал эту строку и получил еще одну ошибку, говоря, что мой строковый объект не имеет атрибута 're'. Это смущает меня, потому что я, хотя я мог бы использовать регулярное выражение со строками ??
source = requests.get('http://www.pickyourownchristmastree.org/').text
soup = BeautifulSoup(source, 'lxml')
concatenate = 'http://www.pickyourownchristmastree.org/'
find_state_group = soup.find('div', class_ = 'alert')
for link in find_state_group.find_all('a', href=True):
if link['href'].re.search('^.\B.\$xmastrees'):
states = concatenate + link
else del link['href']
print(link['href']
Ошибка с else del link['href']
:
else del link['href']
^
SyntaxError: invalid syntax
Ошибка без else del link['href']
:
if link['href'].re.search('^.\B.\$xmastrees'):
AttributeError: 'str' object has no attribute 're'