python爬取动态网站
生活随笔
收集整理的這篇文章主要介紹了
python爬取动态网站
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
- 爬動態(tài)網(wǎng)站有很多種方法,但是最簡單的方法是分析網(wǎng)站的源碼獲取api
第一步導(dǎo)入基本庫
#導(dǎo)入requests module import requests #導(dǎo)入random module import random #導(dǎo)入json module import json第二步,用Chrome打開網(wǎng)站 http://www.neeq.com.cn/disclosure/supervise.html
第三步,按下 f12 (華為電腦是fn+f12),打開分析頁面,
第三步,按下 f5 更新 ,點(diǎn)擊network,和對應(yīng)的url ,headers ,cookies ,把這些數(shù)據(jù)拷貝到代碼中
#設(shè)置cookie Cookie ="AlteonP=AUXKJYGSf3tA27gX0qEGbg$$; Hm_lvt_b58fe8237d8d72ce286e1dbd2fc8308c=1620815395,1620907479,1620907587,1620960621; Hm_lpvt_b58fe8237d8d72ce286e1dbd2fc8308c=1620960621" #設(shè)置動態(tài)js的url url = 'http://www.neeq.com.cn/AnnouncementController/infoResult.do?callback=jQuery331_1620960637102' #設(shè)置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", #設(shè)置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' }因?yàn)檫@個api 是post 的方法,你可以把整個post結(jié)構(gòu)傳入請求
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數(shù)據(jù),而且該數(shù)據(jù)是一個字符串類型的 #獲取包含json數(shù)據(jù)的字符串 str_data=req.contentmy_string=str_data.decode('utf8')c=my_string.split('([')cc1=c[1][:-2]##獲取json字符串?dāng)?shù)據(jù) #str_json=str_data[8:-2] #print(str_json) ##把json數(shù)據(jù)轉(zhuǎn)成dict類型 json_Info=json.loads(cc1)print(json_Info)實(shí)際上你也可以只傳入一個參數(shù)
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 """ #導(dǎo)入requests module import requests #導(dǎo)入random module import random #導(dǎo)入json module import json#設(shè)置cookie Cookie ="AlteonP=AUXKJYGSf3tA27gX0qEGbg$$; Hm_lvt_b58fe8237d8d72ce286e1dbd2fc8308c=1620815395,1620907479,1620907587,1620960621; Hm_lpvt_b58fe8237d8d72ce286e1dbd2fc8308c=1620960621" #設(shè)置動態(tài)js的url url = 'http://www.neeq.com.cn/AnnouncementController/infoResult.do?callback=jQuery331_1620960637102' #設(shè)置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", #設(shè)置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數(shù)據(jù),而且該數(shù)據(jù)是一個字符串類型的 #獲取包含json數(shù)據(jù)的字符串 str_data=req.contentmy_string=str_data.decode('utf8')c=my_string.split('([')cc1=c[1][:-2]##獲取json字符串?dāng)?shù)據(jù) #str_json=str_data[8:-2] #print(str_json) ##把json數(shù)據(jù)轉(zhuǎn)成dict類型 json_Info=json.loads(cc1)print(json_Info)總結(jié)
以上是生活随笔為你收集整理的python爬取动态网站的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu16.04 安装chrome
- 下一篇: Python @函数装饰器用法