Веб-скребок Python 3 чрезвычайно прост, не работает - PullRequest
0 голосов
/ 10 сентября 2018

Я работаю над книгой "Программист-самоучка" и у меня возникают проблемы с некоторым кодом на Python. Я получаю программу для запуска без ошибок. Проблема в том, что вообще нет вывода.

import urllib.request
from bs4 import BeautifulSoup


class Scraper:
    def __init__(self, site):
        self.site = site

    def scrape(self):
        r = urllib.request\
            .urlopen(self.site)
        html = r.read()
        parser = "html.parser"
        sp = BeautifulSoup(html, parser)
        for tag in sp.find_all("a"):
            url = tag.get("href")
            if url is None:
                continue
            if "html" in url:
                print("\n" + url)

news = "https://news.google.com/"
Scraper(news).scrape()

1 Ответ

0 голосов
/ 10 сентября 2018

Посмотрите на последнее утверждение "если". Если в URL нет текста «html», ничего не печатается. Попробуйте удалить это и снять отступ:

class Scraper:
    def __init__(self, site):
        self.site = site

    def scrape(self):
        r = urllib.request\
            .urlopen(self.site)
        html = r.read()
        parser = "html.parser"
        sp = BeautifulSoup(html, parser)
        for tag in sp.find_all("a"):
            url = tag.get("href")
            if url is None:
                continue
            print("\n" + url)
...