我正在研究一个学校项目。我想建立一个Andriod应用程序但在此之前我想从220.225.101.27/MPLogin/eSewa/VehicleSearch.aspx
中抓取一些数据并且必须保存在我的数据库中。当你进入这个网站,你将不得不填写车辆注册号,然后它将显示有关车辆的所有详细信息。我不需要完整的详细信息,但我只需要主人的名字。我想得到所有组合的详细信息车辆登记号码。
我做了一些谷歌搜索,发现了一些python库。
我是python的新手。请忽略如果我混合了一些术语。我只是想知道:
我已经阅读了Beautifulsoup的文档,并且通过使用这个我已成功打印了googlenews标题文本。但这是基本的。填写html表单然后获取详细信息很困难。
我知道这是一个很长的问题,但我想自己学习这些东西。如果有人可以一步一步指导我,那将是非常好的。
答案 0 :(得分:9)
由于您没有提供任何代码,而且您基本上是在寻求建议,我只会向您提供我的见解。
您提到的所有事实都指向scrapy。它是一个非常强大的网络抓取工具。
基本上,您应该执行以下步骤来实现您的任务:
说到专门解析这个网站,它有一个基本的html表单,可以由scrapy的FormRequest
或FormRequest.from_response
以编程方式提交。然后,您可以使用管道将废弃数据存储在数据库或csv或其他任何内容中。
回来问你是否有任何特定的(适合q / a)问题。
希望能帮助您入门。
答案 1 :(得分:3)
这取决于您的确切要求。如果您不需要表单页面中的任何数据,则可以跳过此阶段并直接发送请求。如果您只需要进行一些交互,那么完整的屏幕抓取库可能会让您感到有些畏惧。你可以简单地使用一个http库。它更容易学习,您可以更接近HTTP和HTML,这可能是您的老师希望您学习的内容。
E.g。使用requests
库:
>>> import requests
>>> payload = {'key1': 'value1', 'key2': 'value2'}
>>> r = requests.post("http://yourposturl", data=payload)
>>> print r.text
假设您知道html,您应该能够从表单页面的html中提取yourposturl和变量。
然后,您可以使用正则表达式从生成的html页面中提取数据。这不建议用于一般的抓取解决方案,但是为了从单个页面提取数据,通常很好。