Использование Beautifulsoup для очистки тегов с веб-сайта, но пропустить / игнорировать некоторые другие - PullRequest
0 голосов
/ 20 июня 2019

Я использую следующий код для очистки тегов среди других:

for content in soup.find_all():
  try:        
        link = content.find('enclosure')
        link = link.get('url')
        print "\n\nLink: ", link

        title = content.find('title')
        #<item><guid isPermaLink="false"> == is causing doubling of first episode
        #title = content.find('title')
        title = title.get_text()

Он хорошо очищает URL-адреса, а также следующие заголовки, которые являются правильными, но, очевидно, выбирает два первых из них в соответствии с инструкциями,Как мне проигнорировать их и начать с названия эпизодов (Ep 116)?

(Сайт, который я копирую, - http://feeds.thisiscriminal.com/CriminalShow)

<channel>
  <title>Criminal</title>
  <link>http://thisiscriminal.com/</link>
  </description>
    <image>
    <url>https://f.prxu.org/criminal/images/....png</url>
      <title>Criminal</title>
      <link>http://thisiscriminal.com/</link>
      <title>Episode 116</title>
      <link>http://feeds.thisiscriminal.com/~r/...</link>
  <description>

Любые отзывы очень ценятся!

1 Ответ

2 голосов
/ 20 июня 2019

Хотите что-то вроде следующего?

import requests
from bs4 import BeautifulSoup as bs

r = requests.get('http://feeds.thisiscriminal.com/CriminalShow')
soup = bs(r.content, 'lxml')

for item in soup.select('item'):
    print(item.select_one('title').text)
    print([i.get('href', i.text) for i in item.select('[href], link') if i.get('href', i.text) !=''])
...