2013-06-03 67 views
0

我正在上一個學校項目。我想要構建一個Andriod應用程序,但在此之前我想從220.225.101.27/MPLogin/eSewa/VehicleSearch.aspx刮取一些數據並保存在我的數據庫中。當你進入這個網站時,你將不得不填寫車輛登記號碼,然後它會顯示有關車輛的所有細節。我不需要全部細節,但我只需要車主的姓名。我想要了解所有組合的詳細信息的車輛登記號碼。如何填寫html表單並從網站上刮取?

我做了一些Google搜索,發現了一些python庫。

  1. BeautifulSoup
  2. Scrapy
  3. 機械化

我是新來的蟒蛇。請忽略如果我混合了一些術語。我只是想知道:

  1. 我應該使用哪個庫文件?哪個最好?
  2. 填寫html表單然後通過python獲取詳細信息應該知道些什麼?
  3. 成功完成所有這些工作首先應該知道什麼?
  4. 我需要使用哪些python模塊?
  5. 如何將這些數據保存在我的數據庫或某種Excel文件中?
  6. 該網站在.net會造成任何問題?

我已閱讀Beautifulsoup的文檔,並通過使用此功能,我已成功打印googlenews標題文本。但這是基本的。填寫html表單然後獲取詳細信息很困難。

我知道這是很長的問題,但我想自己學習這個東西。這將是非常好的如果有人可以指導我一步一步。

回答

7

既然你還沒有提供任何代碼,你基本上是要求建議,我只是給你我的見解。

您提到的所有事實都完全指向scrapy。這是一個非常強大的網絡抓取工具。

基本上,你應該做以下步驟來實現你的任務:

談到具體解析此網址,它可以通過scrapy的FormRequestFormRequest.from_response以編程方式提交基本的HTML表單。然後,您可以使用管道將報廢的數據存儲在數據庫或csv中,或其他任何內容中。

回來問問你是否有任何特定的問題(適合q/a)。

希望能幫助你入門。

+0

thanxx好吧。我要去學習並嘗試所有這些東西。 – user2449497

+0

還有一個問題。我將能夠通過使用您所說的步驟來提取上述所有數據? – user2449497

+0

Scrapy應該做到這一點。如果您遇到問題,請在單獨的線索中提出更具體的問題。 – alecxe

2

這取決於您的具體要求。如果您不需要表單頁面中的任何數據,則可以跳過此階段並直接發佈您的請求。如果您只需要進行一些互動,一個完整的屏幕抓取庫可能會讓學習變得有些艱鉅。你可以簡單地使用一個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頁面中提取數據。這不是建議一般的抓取解決方案,但爲了從單個頁面提取數據,通常很好。

+0

剛剛瞭解請求。我使用它導入請求 payload = {'註冊號' :'MP04CF6954'} r = requests.post(「http://220.225.101.27/MPLogin/eSewa/VehicleSearch.aspx,data = payload」) print r.text,但我得到了404錯誤。出了點問題?我只想打印所有者的姓名。 – user2449497

+0

404表示未找到。這可能有多種原因。首先,您發佈到VehicleSearch頁面。您需要檢查VehicleSearch頁面中的html,並查看發佈內容的「action」屬性。另一件事是你可能需要先登錄。 –

+0

沒有登錄。只需輸入字段的值>提交併獲取結果。 – user2449497