#python #xpath #scrapy
#python #xpath #scrapy
Вопрос:
Я пытаюсь извлечь href
, начиная с magnet
:
item['magnet']=response.xpath('//[@id="content"]/article/div[starts-with(@href,"magnet:")]/@href').extract()
Я получаю пустые результаты.
Заранее спасибо за любую помощь.
Комментарии:
1. Вам не хватает a
)
для вашегоcontains
. Кстати, xpath также имеетstarts-with
.2. Да, спасибо, я исправил вопрос. На каждой странице есть по крайней мере один href, начинающийся с magnet, возможно, путь неверен, магнит находится в классе entry-content, но я все еще не могу получить href (результат empy, ошибок нет)
Ответ №1:
Вместо того, чтобы пытаться извлечь конкретную ссылку с magnet
помощью, я предлагаю
1. Извлечь все <a>
теги.
2. Отфильтруйте все ссылки, которые не содержат magnet:
href
атрибута in:
def parse(self, response):
....
item["magnet"] = [link for link in response.css("a::attr(href)").extract() if "magnet:" in link]
Комментарии:
1. Это отлично работает, спасибо. Мне просто нужно было поместить его в список, а затем взять первый -> [0]