python爬取动态网站
生活随笔
收集整理的這篇文章主要介紹了
python爬取动态网站
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
- 爬動(dòng)態(tài)網(wǎng)站有很多種方法,但是最簡(jiǎn)單的方法是分析網(wǎng)站的源碼獲取api
第一步導(dǎo)入基本庫(kù)
#導(dǎo)入requests module import requests #導(dǎo)入random module import random #導(dǎo)入json module import json第二步,用Chrome打開(kāi)網(wǎng)站 http://www.neeq.com.cn/disclosure/supervise.html
第三步,按下 f12 (華為電腦是fn+f12),打開(kāi)分析頁(yè)面,
第三步,按下 f5 更新 ,點(diǎn)擊network,和對(duì)應(yīng)的url ,headers ,cookies ,把這些數(shù)據(jù)拷貝到代碼中
#設(shè)置cookie Cookie ="AlteonP=AUXKJYGSf3tA27gX0qEGbg$$; Hm_lvt_b58fe8237d8d72ce286e1dbd2fc8308c=1620815395,1620907479,1620907587,1620960621; Hm_lpvt_b58fe8237d8d72ce286e1dbd2fc8308c=1620960621" #設(shè)置動(dòng)態(tài)js的url url = 'http://www.neeq.com.cn/AnnouncementController/infoResult.do?callback=jQuery331_1620960637102' #設(shè)置requests請(qǐng)求的 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請(qǐng)求的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)檫@個(gè)api 是post 的方法,你可以把整個(gè)post結(jié)構(gòu)傳入請(qǐng)求
data={'page': 0, 'startTime': '2020-05-14', 'endTime': '2021-05-14', 'announcementYn': 1,'keyword': '', 'sortfield': 'xxssdq', 'sorttype': 'asc'} #requests post請(qǐng)求 req=requests.post(url,data=data,headers=headers) #print(req.content) #通過(guò)打印req.content,我們可以知道post請(qǐng)求返回的是json數(shù)據(jù),而且該數(shù)據(jù)是一個(gè)字符串類(lèi)型的 #獲取包含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類(lèi)型 json_Info=json.loads(cc1)print(json_Info)實(shí)際上你也可以只傳入一個(gè)參數(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è)置動(dòng)態(tài)js的url url = 'http://www.neeq.com.cn/AnnouncementController/infoResult.do?callback=jQuery331_1620960637102' #設(shè)置requests請(qǐng)求的 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請(qǐng)求的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請(qǐng)求 req=requests.post(url,data=data,headers=headers) #print(req.content) #通過(guò)打印req.content,我們可以知道post請(qǐng)求返回的是json數(shù)據(jù),而且該數(shù)據(jù)是一個(gè)字符串類(lèi)型的 #獲取包含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類(lèi)型 json_Info=json.loads(cc1)print(json_Info)總結(jié)
以上是生活随笔為你收集整理的python爬取动态网站的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Ubuntu16.04 安装chrome
- 下一篇: 深蓝儿童