request.exceptions.MissingSchema: неверный URL - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь почистить веб-страницу, чтобы получить статьи, но ссылки не имеют http :, поэтому я получаю request.expections.MissingSchema: Invalid URL error.

Я знаю, что мне нужно попробовать что-то вроде '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)

Я получу дату, заголовок и содержание всех статей со всех страниц.

1 Ответ

2 голосов
/ 02 апреля 2019

Это потому, что в утверждении

resp = requests.get(item.get("href"))

вы не отправляете запрос на действительный URL. Тег href может содержать относительный URL вместо абсолютного URL. Пожалуйста, попробуйте добавить базовый URL до item.get ( "HREF")

Это должно сделать:

resp = requests.get("https:"+item.get("href"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...