【问题标题】:Python - Beautiful Soup to grab emails from websitePython - Beautiful Soup 从网站抓取电子邮件
【发布时间】:2017-03-30 02:15:17
【问题描述】:

我一直在尝试找出一种简单的方法来运行一组 URL,这些 URL 指向所有具有相同布局的页面。我们发现一个问题是,在原始列表中,URL 是 http,但随后它们重定向到 https。我不确定这是否会导致尝试从页面中提取信息时出现问题。当我在 Chrome 中使用 Inspector 时,我可以看到页面的结构,但是当我尝试设置代码以获取相关链接时,我发现是空的(字面意思)。我一直使用的最通用的代码是:

soup = BeautifulSoup(urllib2.urlopen('https://ngcproject.org/program/algirls').read())
links = SoupStrainer('a')
print links

产生:

a|{}

鉴于我是新手,我一直在尝试使用任何我认为可行的方法。我也试过了:

mail = soup.find(attrs={'class':'tc-connect-details_send-email'}).a['href']

spans = soup.find_all('span', {'class' : 'tc-connect-details_send-email'})
lines = [span.get_text() for span in spans]
print lines

但这些也不会产生任何结果。

我假设这是我的代码的问题,而不是数据被隐藏而不被抓取的问题。理想情况下,我希望将我抓取的每个 URL 的数据传递给 CSV 文件,但现在我需要能够确认代码实际上正在获取正确的信息。欢迎提出任何建议!

【问题讨论】:

  • 这不起作用的原因是因为内容在渲染时由角度填充。
  • 这意味着你应该使用动态爬取工具,比如e.g. selenium。

标签: python html beautifulsoup


【解决方案1】:

如果您在 Google Chrome 上按 CTRL+U 或右键单击 > 查看源代码。 您会看到该页面是使用 javascript 或其他方式呈现的。 urllib 将无法显示/下载您要查找的内容。 您必须使用自动浏览器(Selenium - 最流行),您可以将其与 Google Chrome / Firefox 或无头浏览器 (PhantomJS) 一起使用。

然后,您可以从 Selenium 获取信息并将其存储,然后以您认为合适的方式对其进行操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多