无法使用Python的BeasutifulSoup4 /提取方法从某些网址中抓取标题

问题描述 投票:0回答:1

我有两个简单的python脚本,可从URL刮取标题,主图像,描述。一种使用提取,另一种使用BeautifulSoup4。两者都适用于大多数网址(例如http://nytimes.com)。但是在这两种情况下,都有一些无法使用的网址:http://latimes.com这很奇怪,因为它是如此大的站点。我制作了两个不同的脚本,以确认问题并非来自库。

我想念的是什么?有人可以帮我弄清楚为什么我什么也得不到吗?


脚本号1:

import extraction, requests
ext = extraction.Extractor()

print('Enter url:')
url = input() 
x = ext.extract(requests.get(url).text, source_url=url)

print(x.title)
print(x.url)
print(x.description)

脚本号的结果1:

enter image description here


脚本号2:

from bs4 import BeautifulSoup
import requests

print('Enter url:')
url = input()

source = requests.get(url).text
soup = BeautifulSoup(source, 'lxml')

title = soup.find("meta", property="og:title")["content"]
typeof = soup.find("meta", property="og:type")["content"]
image = soup.find("meta", property="og:image")["content"]
url = soup.find("meta", property="og:url")["content"]
summary = soup.find("meta", property="og:description")["content"]

print(title)
print(typeof)
print(image)
print(url)
print(summary)

enter image description here

python extraction
1个回答
0
投票

错误包含大量信息,但是您必须花一点时间才能正确解释它们。

脚本1:无法满足请求。嗯,请求出了点问题。试试:

import extraction
import requests
ext = extraction.Extractor()

print('Enter url:')
url = input() 

r = requests.get(url)

if r.status_code != 200: # check if request is _not_ OK
    print(f"Error {r.status_code} when requesting {url}!")
    return

x = ext.extract(, source_url=url)

print(x.title)
print(x.url)
print(x.description)

与脚本2相同的问题。如果soup.find("meta", property="og:title")显然返回None,则[]项会出错。因此,返回并打印soup,以查看脚本是否仍然可以。

© www.soinside.com 2019 - 2024. All rights reserved.