麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Python > 正文

Python 抓取動態網頁內容方案詳解

2020-02-23 06:16:58
字體:
來源:轉載
供稿:網友

用Python實現常規的靜態網頁抓取時,往往是用urllib2來獲取整個HTML頁面,然后從HTML文件中逐字查找對應的關鍵字。如下所示:

代碼如下:
import urllib2
url="http://mm.taobao.com/json/request_top_list.htm?type=0&page=1"
up=urllib2.urlopen(url)#打開目標頁面,存入變量up
cont=up.read()#從up中讀入該HTML文件
key1='<a href="http'#設置關鍵字1
key2="target"#設置關鍵字2
pa=cont.find(key1)#找出關鍵字1的位置
pt=cont.find(key2,pa)#找出關鍵字2的位置(從字1后面開始查找)
urlx=cont[pa:pt]#得到關鍵字1與關鍵字2之間的內容(即想要的數據)
print urlx

但是,在動態頁面中,所顯示的內容往往不是通過HTML頁面呈現的,而是通過調用js等方式從數據庫中得到數據,回顯到網頁上。以發改委網站上的“備案信息”(http://beian.hndrc.gov.cn/)為例,要抓取此頁面中的某些備案項目。例如“http://beian.hndrc.gov.cn/indexinvestment.jsp?id=162518”。

那么,在瀏覽器中打開此頁面:

相關信息都顯示的很全了,但是如果按照之前的辦法:

代碼如下:
up=urllib2.urlopen(url)
cont=up.read()

就抓取不到上述內容了。

我們查看一下這個頁面對應的源碼:

由源碼可以看出,這個《備案確認書》屬于“填空”形式的,HTML提供文字模板,js根據不同的id提供不同的變量,“填入”到文字模板中,形成了一個具體的《備案確認書》。所以單純抓取此HTML,只能得到一些文字模板,而無法得到具體內容。

那么,該如何找到那些具體內容呢?可以利用Chrome的“開發者工具”來尋找誰是真正的內容提供者。

打開Chrome瀏覽器,按下鍵盤F12即可呼出此工具。如下圖:

此時選中“Network”標簽,在地址欄中輸入此頁面“http://beian.hndrc.gov.cn/indexinvestment.jsp?id=162518”,瀏覽器會分析出此次響應的全過程,而紅框內的文件,就是此次響應中,瀏覽器和web后端的所有通信。

因為要獲得不同企業對應的不同信息,那么瀏覽器發送給服務器的請求里面一定會有一個和當前企業id有關的參數。

那么,參數是多少呢?URL上有,是“jsp?id=162518”,問號表示要調用參數,后面跟的是id號即是被調用的參數。而通過對這幾個文件的分析,很顯然,企業信息存在于“indexinvestment.action”文件中。

然而,雙擊打開此文件并不能獲得企業信息,而是一堆代碼。因為沒有對應的參數為它指明要顯示第幾號的信息。如圖:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 成人电影毛片 | 久久成人综合视频 | 久久69精品久久久久久国产越南 | 哪里可以看免费的av | 国产国语毛片 | 亚洲一级网站 | 国产精品高潮99久久久久久久 | 久久国产精品久久久久久 | 国产一区精品在线观看 | 一级电影中文字幕 | 久久99国产精品久久 | 曰批全过程40分钟免费视频多人 | 毛片118极品美女写真 | 日本黄色一级视频 | 色诱亚洲精品久久久久久 | 国产色视频在线观看免费 | chengrenyingshi| 俄罗斯16一20sex牲色另类 | 午夜在线视频一区二区三区 | 国产一级一国产一级毛片 | 精品一区久久久 | 性少妇freeseⅹbbwhd | 欧美五月婷婷 | 日日噜噜夜夜爽 | 中文字幕欧美亚洲 | 欧美日韩国产成人在线观看 | 欧美黄色一区 | 99re久久最新地址获取 | 舌头伸进添的我好爽高潮网站 | 97人人草| 免费观看黄色一级视频 | 国产精品久久久久久久久久尿 | 国产羞羞视频在线观看免费应用 | 99视频网址| 久久逼网 | 成人免费视频视频在线观看 免费 | 成人精品一区二区 | 欧美黄成人免费网站大全 | 国产va在线观看免费 | 黄色毛片视频在线观看 | 亚洲午夜激情网 |