为什么我的网页抓取没有返回任何内容?

时间:2020-08-21 15:29:52

标签: python web-scraping

我是第一次使用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()

我在IDLE和pycharm上运行,结果一无所有。我已经添加了所有模块,但我不知道问题出在哪里。也许从我的url打印所有内容并使其行很多,所以无法从我的代码或从桌面返回它。 谁能帮我吗?

1 个答案:

答案 0 :(得分:0)

您尝试抓取的网站很可能是动态网站,这意味着它是Javascript生成的代码,不能仅使用requestsbeautifulsoup进行抓取。您可以了解更多here。我建议尝试使用selenium来控制浏览器,以便您可以直接从浏览器中加载的代码中检索代码。

编辑:正如Arman所说,Google可能也阻止了可能的Web抓取活动。硒也可能与之共存。基本上,它是在“模拟”浏览器,就像您实际上在使用浏览器一样,但实际上是在使用python代码自动实现它。