我正在尝试抓取网页来获取文章,但链接中没有http :,所以我收到了request.expections.MissingSchema:无效的网址错误。
我知道我必须尝试类似“ http:” + href的操作,但是我不知道该放在哪里。
import time
import requests
from bs4 import BeautifulSoup
url = 'https://mainichi.jp/english/search?q=cybersecurity&t=kiji&s=match&p={}'
pages = 6
for page in range(1, pages+1):
res = requests.get(url.format(page))
soup = BeautifulSoup(res.text,"lxml")
for item in soup.select(".list-typeD li > a"):
resp = requests.get(item.get("href"))
sauce = BeautifulSoup(resp.text,"lxml")
date = sauce.select(".post p")
date = date[0].text
title = sauce.select_one(".header-box h1").text
content = [elem.text for elem in sauce.select(".main-text p")]
print(f'{date}\n {title}\n {content}\n')
time.sleep(3)
我将从所有页面上获取所有文章的日期,标题和内容。
答案 0 :(得分:2)
这是因为在声明中
resp = requests.get(item.get("href"))
您没有将请求发送到有效的URL。 href标记可能包含相对URL,而不是绝对URL。请尝试在附加附加网址之前 item.get(“ href”)
这应该做:
resp = requests.get("https:"+item.get("href"))