使用BeautifulSoup Python进行的网络抓取未返回任何内容

时间:2020-01-25 20:35:14

标签: python python-3.x web-scraping beautifulsoup

我试图从http://rss.cnn.com/rss/money_markets.rss获取一些文本,当我运行代码时,我不断得到None的输出。如果有帮助,我尝试从网络上获取所有小标题,并清楚显示其下的文字。谢谢!

import requests
import bs4
from bs4 import BeautifulSoup
web = requests.get("http://rss.cnn.com/rss/money_markets.rss")
start = bs4.BeautifulSoup(web.text, 'lxml')
scrape = start.find(".regularitem")
for i in scrape:
    print(scrape)

1 个答案:

答案 0 :(得分:1)

浏览器以用户友好的方式(即HTML格式)在http://rss.cnn.com/rss/money_markets.rss处呈现数据,但数据本身实际上是XML。您可以通过print(response.headers['content-type'])进行检查,该查询返回'text/xml; charset=ISO-8859-1'。因此,您需要的是item XML元素。另外,我建议使用find_all()来获取所有元素,而不要使用find()来获取仅第一个元素。

import bs4
import requests

response = requests.get("http://rss.cnn.com/rss/money_markets.rss")
soup = bs4.BeautifulSoup(response.text, 'lxml')
for item in soup.find_all("item"):
    print(item.title.text)
    print(item.description.text)
    print("\n")