【发布时间】:2020-10-19 15:06:33
【问题描述】:
我对 Python 完全陌生,但我使用 Beuautifulsoup 编写了一些代码来解析来自不同站点的内容。此代码应捕获站点中的所有 <article> 标记,或者如果不可用,则应捕获 <p> 标记。它在大多数情况下都可以正常工作,但是有些站点会返回错误,尽管检查站点,但其中有带有内容的 <p> 标签,因此它应该返回 <p> 标签之间的文本。
import requests
import sys
from bs4 import BeautifulSoup
try:
source = requests.get('https://reactpodcast.com/episodes/96').text
except:
print('Site does not exist')
sys.exit()
soup = BeautifulSoup(source, 'lxml')
div_s = soup.find_all('div')
title = soup.find('title')
article = soup.find('article')
content = soup.find_all('p')
allContent = ""
for c in content:
allContent += c.text
yt_title = soup.find('span', class_='watch-title')
yt_description = soup.find('p', attrs={'id': 'eow-description'})
try:
if article != None:
print(title.text)
print(article.text)
elif "https://www.youtube.com" in source:
print(yt_title.text)
print(yt_description.text)
elif article == None:
print(title.text)
print(allContent)
else:
print('There is an error')
except:
print('This URL is invalid')
sys.exit()
有没有人有任何建议(提示和技巧)来解决这个问题?
提前谢谢你!
【问题讨论】:
-
您好,亲爱的,感谢您的示例:太好了-您正在从两个站点收集数据并收集数据...太好了
标签: python web-scraping beautifulsoup