【问题标题】:Python web scraping - Download a file and store all data in xmlPython 网页抓取 - 下载文件并将所有数据存储在 xml 中
【发布时间】:2012-10-23 19:44:27
【问题描述】:

我希望使用 Python 从我大学的 Intranet 中抓取一些数据并下载所有研究论文。我以前看过 Python 抓取,但我自己并没有真正做过任何事情我确定我在某处读到过 Python 抓取框架,我应该使用它吗?

所以本质上这就是我需要抓取的内容:

  1. 作者
  2. 说明
  3. 字段
  4. 然后下载文件并用论文名称重命名。

然后我会将所有这些都放在 xml 或数据库中,很可能是 xml,然后在以后开发接口等。

这可行吗?关于我应该从哪里开始的任何想法?

提前致谢, 卢克詹克斯

编辑:框架是 Scrapy

编辑:原来我今天差点杀死服务器,所以一位讲师正在为我从网络团队获取副本...谢谢!

【问题讨论】:

  • 当然,这是可行的。我会使用urllib2 之类的东西来下载页面,然后使用python 的regular expression module re 来提取您需要的字段。 (您也可以使用一些 XML 解析器,但我发现当 html 不是正确的 XML 时使用正则表达式更容易)。对于数据库,除非我需要提供“外部”访问权限,否则我可能只是 pickle 数据结构并保存到文件中。
  • 页面是否使用javascript生成您感兴趣的数据?
  • 我相信这些页面都在 php 中,并且所有数据都是从数据库中检索的。我现在无法访问该网站(我在家),所以我无法确认。
  • 如果没有@J.F.Sebastian 提到的JS 生成内容,那么lxml.htmllxml 的一部分,如果需要cookie 等...,则将其与requests 结合起来跨度>

标签: python xml web download screen-scraping


【解决方案1】:

Scrapy 是一个很棒的框架,而且 documentation 也非常好。你应该从那里开始。

如果你不知道XPaths,如果你打算使用 Scrapy,我建议你学习它们(它们非常简单!)。 XPath 可帮助您“定位”要提取的 html 中的特定元素。

Scrapy 已经有一个内置的命令行参数可以导出到 xml、csv 等,即scrapy crawl <spidername> -o <filename> -t xml

Mechanize 是另一个轻松编写爬虫的好选择。

【讨论】:

    【解决方案2】:

    是的,这是非常可行的,尽管这在很大程度上取决于页面。正如 cmets 中所暗示的那样,一个 JS-heavy 网站可能会使这变得非常困难。

    除此之外,下载使用标准urllib2,或查看Requests 以获得更轻松、更少痛苦的体验。

    但是,最好不要使用正则表达式来解析 HTML,它可能会导致 world of endless screaming。不过说真的,试试BeautifulSoup - 它功能强大,而且非常高级。

    对于存储,以最简单的为准(对我来说 XML 似乎有点过头了,或许可以考虑 json 库)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-02
      • 2023-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-16
      • 2020-02-02
      相关资源
      最近更新 更多