0

我正在做一个学校项目。我想构建一个 Andriod 应用程序,但在此之前我想从数据库中抓取一些数据220.225.101.27/MPLogin/eSewa/VehicleSearch.aspx并保存在我的数据库中。当您进入此网站时,您必须填写车辆登记号,然后它将显示有关车辆的所有详细信息。我不需要完整的详细信息,但我只需要车主的姓名。我想获得所有组合的详细信息的车辆登记号码。

我做了一些谷歌搜索,发现了一些 python 库。

  1. 美丽汤
  2. 刮擦
  3. 机械化

我是 python 新手。请忽略如果我混合了一些术语。我只是想知道:

  1. 我应该使用哪个库?哪个最好?
  2. 关于填写html表单然后通过python获取详细信息我应该知道什么?
  3. 要成功完成所有这些工作,我首先应该知道什么?
  4. 我需要使用哪些 python 模块?
  5. 如何将这些数据保存在我的数据库或某种 Excel 文件中?
  6. 该站点位于.net 中会导致任何问题吗?

我已经阅读了 Beautifulsoup 的文档,并通过使用它成功地打印了 googlenews 标题文本。但这是基本的。填写 html 表单然后获取详细信息很困难。

我知道这是一个很长的问题,但我想自己学习这些东西。如果有人可以逐步指导我,那就太好了。

4

2 回答 2

12

由于您没有提供任何代码,并且您基本上是在寻求建议,所以我只会给您我的见解。

您提到的所有事实都指向scrapy。这是一个非常强大的网络抓取工具。

基本上,您应该执行以下步骤来实现您的任务:

说到具体解析这个网站,它有一个基本的 html 表单,可以通过 scrapyFormRequestFormRequest.from_response. 然后,您可以使用管道将报废的数据存储在数据库或 csv 或其他任何内容中。

回来询问您是否有任何具体的(适合 q/a)问题。

希望这可以帮助您入门。

于 2013-06-03T21:59:45.920 回答
3

这取决于您的确切要求。如果您不需要表单页面中的任何数据,您可以简单地跳过此阶段并直接发布您的请求。如果你只需要抓取一些交互,那么一个完整的屏幕抓取库可能有点难以学习。您可以简单地使用 http 库。它更容易学习,并且您更接近 HTTP 和 HTML,这可能是您的老师希望您学习的内容。

例如使用requests库:

>>> import requests
>>> payload = {'key1': 'value1', 'key2': 'value2'}
>>> r = requests.post("http://yourposturl", data=payload)
>>> print r.text

假设您知道 html,您应该能够从表单页面的 html 中提取 yourposturl 和变量。

然后,您可以使用正则表达式从生成的 html 页面中提取数据。对于一般的抓取解决方案,不建议这样做,但对于从单个页面中提取数据,通常没问题。

于 2013-06-03T22:02:54.177 回答