本文目錄一覽:
- 1、怎麼使用python爬取百度網的數據
- 2、python如何讀取網頁中的數據
- 3、python 怎麼獲取web數據
- 4、如何用python抓取js生成的數據
- 5、如何用Python爬蟲抓取網頁內容?
- 6、python抓取介面內容用什麼方法
怎麼使用python爬取百度網的數據
檔案系統初期算是告一段落了,利用一點時間繼續爬取POI。和領導聊聊,受益匪淺。之前我的想法是爬取一份poi數據,直接能用;而領導聽了之後,覺得更好的方式是爬取多個渠道來源的POI數據,然後做一個數據比較融合(最終事情能不能成不好說,但是經過這麼一回,細節技術上有所提高,宏觀把控整體項目流程能力有所長進,更重要的是通過和能人交流,以更高的眼界更宏觀的看待數據、應用以及問題,這就是成長)。 我之前採用的方式,可以滿足需求,但是POI數據獲取效率差一些(雖然已經很快,但是相比本文這種還是慢一些)、數據現勢性不好,高德數據和百度數據雖然是兩套,但是僅僅是坐標不同(所以顯然還是一套)。所以,我加一種方式來爬取百度poi。
一 調研: 百度API提供了一個叫Place API獲取poi的介面,有個城市內檢索 實例為
ce/v2/search?query=銀行page_size=10page_num=0scope=1region=北京output=jsonak={您的密鑰}
它返回的是個json類型數據,一個區域最大返回數為400,每頁最大返回數為20。顯然一個城市內不管什麼類別的poi,不可能只有400個,會遺漏數據,故捨去
還有一個矩形區域檢索,實例為
u.com/place/v2/search?query=美食page_size=10page_num=0scope=1bounds=39.915,116.404,39.975,116.414output=jsonak={您的密鑰}只要區域劃分得當,這個可以使用
二 要解決的問題
1 區域劃分
網上有人通過遞歸寫代碼的方式來劃分,這樣劃分有問題,第一,劃分的區域不能完全對應一個城市的市區;第二,演算法設計比較麻煩。解決辦法,後面詳細說。
2 類別問題
百度API的介面必須要指定query的類別,那麼如果類別指定不準,或者類別不全,根本無法完成爬取一個城市所有poi的任務。解決辦法,說實話,這個問題在我做這件事情的時候,
十分棘手,不過我最終找到了這個網頁
/index.php?title=lbscloud/poitags,一切都不是問題了
三 整體流程
1 區域劃分,2km*2km的區域基本可以滿足需求,獲取每個區域的對角坐標(經緯度),逐行寫入一個txt文本里
2 爬蟲程序編寫 讀取1中的txt文本,逐行循環;調用百度API介面,爬取json;將爬取的數據存入資料庫中; 每個類別跑一次程序
3 爬下的POI數據處理 poi顯示,投影坐標轉換,與地圖疊加
後文將詳細介紹流程
python如何讀取網頁中的數據
用Beautiful Soup這類解析模塊:
Beautiful Soup 是用Python寫的一個HTML/XML的解析器,它可以很好的處理不規範標記並生成剖析樹(parse tree);
它提供簡單又常用的導航(navigating),搜索以及修改剖析樹的操作;
用urllib或者urllib2(推薦)將頁面的html代碼下載後,用beautifulsoup解析該html;
然後用beautifulsoup的查找模塊或者正則匹配將你想獲得的內容找出來,就可以進行相關處理了,例如:
from BeautifulSoup import BeautifulSoup
html = ‘htmlheadtitletest/title/headbodyptest body/p/body/html’
soup = BeautifulSoup(html)
soup.contents[0].name
# u’html’
soup.comtents[0].contents[0].name
# u’head’
head = soup.comtents[0].contents[0]
head.parent.name
# u’html’
head.next
# u’titletest/title
python 怎麼獲取web數據
python標準庫有urllib, urllib2還有三方庫requests,這些都可以發送http請求,然後獲得返回的內容,也就是網頁內容。
如何用python抓取js生成的數據
一、查看相應的js代碼,用python獲取原始數據之後,模仿js編寫相應的python代碼。
二、通過介面api獲得數據,直接使用python獲取介面數據並處理。
三。終極方法。使用 Selenium和PhantomJS執行網頁js代碼,然後再獲取數據,這種方法100%可以獲取數據,確定就是速度太慢。
如何用Python爬蟲抓取網頁內容?
爬蟲流程
其實把網路爬蟲抽象開來看,它無外乎包含如下幾個步驟
模擬請求網頁。模擬瀏覽器,打開目標網站。
獲取數據。打開網站之後,就可以自動化的獲取我們所需要的網站數據。
保存數據。拿到數據之後,需要持久化到本地文件或者資料庫等存儲設備中。
那麼我們該如何使用 Python 來編寫自己的爬蟲程序呢,在這裡我要重點介紹一個 Python 庫:Requests。
Requests 使用
Requests 庫是 Python 中發起 HTTP 請求的庫,使用非常方便簡單。
模擬發送 HTTP 請求
發送 GET 請求
當我們用瀏覽器打開豆瓣首頁時,其實發送的最原始的請求就是 GET 請求
import requests
res = requests.get(”)
print(res)
print(type(res))
Response [200]
class ‘requests.models.Response’
python抓取介面內容用什麼方法
你的問題事實上包含幾部分:
將 PDF 轉化為純文本格式
抽取其中部分內容
格式化寫入到 excel 中
轉換 PDF 有很多庫可以完成,如下是通過 pdfminer 的示例:
from cStringIO import StringIO
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
def convert_pdf_2_text(path):
rsrcmgr = PDFResourceManager()
retstr = StringIO()
device = TextConverter(rsrcmgr, retstr, codec=’utf-8′, laparams=LAParams())
interpreter = PDFPageInterpreter(rsrcmgr, device)
with open(path, ‘rb’) as fp:
for page in PDFPage.get_pages(fp, set()):
interpreter.process_page(page)
text = retstr.getvalue()
device.close()
retstr.close()
return text
需要指出的是,pdfminer 不但可以將 PDF 轉換為 text 文本,還可以轉換為 HTML 等帶有標籤的文本。上面只是最簡單的示例,如果每頁有很獨特的標誌,你還可以按頁單獨處理。
原創文章,作者:JTBL,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/147770.html