python爬取动态网站
生活随笔
收集整理的這篇文章主要介紹了
python爬取动态网站
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
- 爬動態網站有很多種方法,但是最簡單的方法是分析網站的源碼獲取api
第一步導入基本庫
#導入requests module import requests #導入random module import random #導入json module import json第二步,用Chrome打開網站 http://www.neeq.com.cn/disclosure/supervise.html
第三步,按下 f12 (華為電腦是fn+f12),打開分析頁面,
第三步,按下 f5 更新 ,點擊network,和對應的url ,headers ,cookies ,把這些數據拷貝到代碼中
#設置cookie Cookie ="AlteonP=AUXKJYGSf3tA27gX0qEGbg$$; Hm_lvt_b58fe8237d8d72ce286e1dbd2fc8308c=1620815395,1620907479,1620907587,1620960621; Hm_lpvt_b58fe8237d8d72ce286e1dbd2fc8308c=1620960621" #設置動態js的url url = 'http://www.neeq.com.cn/AnnouncementController/infoResult.do?callback=jQuery331_1620960637102' #設置requests請求的 headersheaders = {'User-agent': "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36", #設置get請求的User-Agent,用于偽裝瀏覽器UA 'Cookie': Cookie,'Connection': 'keep-alive','Accept': 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01','Accept-Encoding': 'gzip, deflate','Accept-Language': 'zh-CN,zh;q=0.9','Host': 'www.neeq.com.cn','Referer': 'http://www.neeq.com.cn/disclosure/supervise.html','content-type': 'charset=utf8' }因為這個api 是post 的方法,你可以把整個post結構傳入請求
data={'page': 0, 'startTime': '2020-05-14', 'endTime': '2021-05-14', 'announcementYn': 1,'keyword': '', 'sortfield': 'xxssdq', 'sorttype': 'asc'} #requests post請求 req=requests.post(url,data=data,headers=headers) #print(req.content) #通過打印req.content,我們可以知道post請求返回的是json數據,而且該數據是一個字符串類型的 #獲取包含json數據的字符串 str_data=req.contentmy_string=str_data.decode('utf8')c=my_string.split('([')cc1=c[1][:-2]##獲取json字符串數據 #str_json=str_data[8:-2] #print(str_json) ##把json數據轉成dict類型 json_Info=json.loads(cc1)print(json_Info)實際上你也可以只傳入一個參數
data={'page': 0, }全部代碼
#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Fri May 14 10:48:30 2021@author: ledi """# -*- coding: utf-8 -*- """ Created on Tue May 01 18:52:49 2018 @author: gmn """ #導入requests module import requests #導入random module import random #導入json module import json#設置cookie Cookie ="AlteonP=AUXKJYGSf3tA27gX0qEGbg$$; Hm_lvt_b58fe8237d8d72ce286e1dbd2fc8308c=1620815395,1620907479,1620907587,1620960621; Hm_lpvt_b58fe8237d8d72ce286e1dbd2fc8308c=1620960621" #設置動態js的url url = 'http://www.neeq.com.cn/AnnouncementController/infoResult.do?callback=jQuery331_1620960637102' #設置requests請求的 headersheaders = {'User-agent': "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36", #設置get請求的User-Agent,用于偽裝瀏覽器UA 'Cookie': Cookie,'Connection': 'keep-alive','Accept': 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript, */*; q=0.01','Accept-Encoding': 'gzip, deflate','Accept-Language': 'zh-CN,zh;q=0.9','Host': 'www.neeq.com.cn','Referer': 'http://www.neeq.com.cn/disclosure/supervise.html','content-type': 'charset=utf8' }data={'page': 0, 'startTime': '2020-05-14', 'endTime': '2021-05-14', 'announcementYn': 1,'keyword': '', 'sortfield': 'xxssdq', 'sorttype': 'asc'}# data={'page': 2,# }#requests post請求 req=requests.post(url,data=data,headers=headers) #print(req.content) #通過打印req.content,我們可以知道post請求返回的是json數據,而且該數據是一個字符串類型的 #獲取包含json數據的字符串 str_data=req.contentmy_string=str_data.decode('utf8')c=my_string.split('([')cc1=c[1][:-2]##獲取json字符串數據 #str_json=str_data[8:-2] #print(str_json) ##把json數據轉成dict類型 json_Info=json.loads(cc1)print(json_Info)總結
以上是生活随笔為你收集整理的python爬取动态网站的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu16.04 安装chrome
- 下一篇: Python @函数装饰器用法