日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python爬取动态数据

發(fā)布時間:2024/3/12 python 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python爬取动态数据 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

項目場景:

在做一個校園新聞小程序的時候,不僅需要獲得新聞內(nèi)容,同時還要獲取點擊量來排序。爬取靜態(tài)的數(shù)據(jù)很簡單,爬取動態(tài)的數(shù)據(jù)就有一點麻煩了。


問題描述

比如說我們在爬取這個網(wǎng)頁的時候

打開開發(fā)者工具可以看到點擊量

但是我們爬取來的內(nèi)容確是這個樣子的

點擊量為什么會不顯示呢?


原因分析:

我的理解是這樣子的,因為點擊量是隨著網(wǎng)頁的刷新要不斷地改變的,而新聞內(nèi)容是固定不變的。所以說點擊量會由一個函數(shù)去不斷更新,因此靜態(tài)的網(wǎng)頁內(nèi)容不顯示這個數(shù)據(jù)也在情理之中了。


解決方案:

要獲取這樣的數(shù)據(jù),首先得找到這個數(shù)據(jù)。幸運地是,點擊量這個數(shù)據(jù)比較的獨一無二,是一個數(shù)字。當然你不能直接打開開發(fā)者工具就在在”元素“中檢索,要找到產(chǎn)生這個數(shù)字的源頭,這種動態(tài)數(shù)據(jù)一般會在“網(wǎng)絡”中的XHR或者JS文件中找到,比如這樣(記得刷新一下再找!)

在這一個亂七八糟的返回里面,我們要的點擊量就在最后的幾個click中。當然它現(xiàn)在不再是那個781了,但沒有關系,我們很輕松地找到了它(大多數(shù)情況不是這樣,但readClick這幾個字實在是太顯眼了!)
預覽就是我們發(fā)送請求獲得的數(shù)據(jù),而點擊量就放在這個數(shù)據(jù)的最后。那么我們現(xiàn)在只需要發(fā)送請求獲得這個數(shù)據(jù),再用正則表達式提取出點擊量803就行了

然后是請求的參數(shù),這個參數(shù)有時候會在標頭的最下面,但是這里并沒有,其實負載就是這次請求的參數(shù)。

我們來分析一下參數(shù)。如果你只想獲得這一個網(wǎng)頁的動態(tài)數(shù)據(jù),那么直接照抄就行了。

from sqlite3 import Date import requests import random, time, sysheaders = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36 Edg/100.0.1185.29' } params = {'callCount':'1','nextReverseAjaxIndex':'0','c0-scriptName':'Ajax','c0-methodName':'readClick','c0-id':'0','c0-param0':'string:1649408845878','batchId':'0','instanceId':'0','page':'%2Fcolumn%2Fh_26_yi%2Fcontent%2F1649408845878.shtml','scriptSessionId':'5eSlySH4R9SBWHfCeP6lNqg1u0JcgKn5m1o/mvq5m1o-GDTnJP$nz' }res = requests.post('https://news.hutb.edu.cn/dwr/call/plaincall/Ajax.readClick.dwr', headers=headers, params=params) print(res.text)


我們來分析一下這些參數(shù)。c0-param0與page在不同的新聞是有區(qū)別的,區(qū)別就在于他們是第幾條新聞,參數(shù)就要怎么寫,比如這條新聞網(wǎng)址是https://news.hutb.edu.cn/column/h_26_yi/content/1649408845878.shtml,那么最后的169408845878就是這兩個參數(shù)的實參(可能這個數(shù)字也不是新聞 的條數(shù),畢竟太大了!)
然后就是scriptSessionId,這個參數(shù)我在比較不同的新聞頁時發(fā)現(xiàn)他們在’/‘之前的字符是相同的,不同的是’/‘后面的字符,于是我搜索了這個參數(shù)

我們來搜索一下’/'后面的參數(shù)

很明顯這個參數(shù)是由當前時間與一個隨機數(shù)決定的,而tokenify我認為是一個編碼的函數(shù),既然與隨機數(shù)有關,那么我在傳參時是不是可以忽略這個參數(shù),隨便寫一個值呢,我們試一下:

結果是這樣子

因此在爬取網(wǎng)頁動態(tài)數(shù)據(jù)的時候,首先是找到這個值(因為有搜索選項,大部分時候都很容易找),然后就是參數(shù),或者說負載的問題了。如果你要爬取多個頁面的動態(tài)數(shù)據(jù),那么將這些參數(shù)的意義,或者說他們的特征弄清楚則是很重要的,這樣才能傳正確的參數(shù)獲得自己想要的數(shù)據(jù)。

總結

以上是生活随笔為你收集整理的Python爬取动态数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产高清视频一区 | 大桥未久恸哭の女教师 | 久久婷婷网站 | av动漫免费观看 | 日韩av一区二区三区在线 | 美女极度色诱图片www视频 | 欧洲色av| 国产av一区二区三区最新精品 | 国产高清免费在线播放 | 欧美三日本三级少妇三99 | 国产精品毛片久久久久久久 | 久草这里只有精品 | 亚洲码视频| 亚洲男人天堂网站 | 一区二区精品在线观看 | 全部孕妇毛片丰满孕妇孕交 | 91玖玖 | 色人阁婷婷 | 一区二区三区四区在线播放 | 久久精品视频免费 | 综合久久一区二区 | 国产 中文 字幕 日韩 在线 | 免费高清欧美大片在线观看 | 中文字幕在线观 | 欧美国产另类 | 国产欧美一区二区三区在线看蜜臂 | 麻豆传媒视频入口 | 有码在线播放 | 操操操影院 | 影音先锋亚洲精品 | 一区视频在线播放 | 醉酒壮男gay强迫野外xx | 色婷婷婷婷 | v天堂中文在线 | 国产一级二级视频 | 成人免费看高清电影在线观看 | 亚洲视频六区 | 处破痛哭a√18成年片免费 | 天天射天天操天天干 | av在线有码 | 免费草逼视频 | 久久久精品电影 | 在线观看h网站 | 欧美夜夜夜 | 夜夜嗨aⅴ一区二区三区 | 最近中文字幕 | 伊人春色网| 黄色国产在线视频 | 日本不卡中文字幕 | 日本黄色片视频 | 婷婷深爱激情 | 一区二区在线视频免费观看 | 色网站免费 | 六月婷婷综合 | 国产真人无遮挡作爱免费视频 | 成人午夜免费福利 | 美女视频黄色在线观看 | 亚洲精品一线 | 精品人妻午夜一区二区三区四区 | 福利在线播放 | 黄色性大片 | 日本精品中文字幕 | 男生操女生网站 | 欧美性一区 | 欧美精品一 | 午夜91| 四虎成人永久免费视频 | 国产情侣在线视频 | 国产精品久久九九 | 女人洗澡一级特黄毛片 | 大胸喷奶水www视频妖精网站 | 五月婷婷色综合 | 香港台湾日本三级大全 | www超碰在线 | 欧美大片免费在线观看 | av永久免费在线观看 | 91蜜桃婷婷狠狠久久综合9色 | 国产精品v亚洲精品v日韩精品 | 亚洲二区在线观看 | 色戒电影未测减除版 | 97在线国产 | av网址在线免费观看 | 国产精品久久久久久久妇 | 午夜成人免费影院 | 五月婷婷婷 | 精品人妻一区二区免费 | 黄色小网站入口 | 美日韩av在线 | 日韩在线视频在线观看 | 小毛片| 高潮久久久 | 撕开少妇裙子猛然进入 | 日韩欧美中文字幕一区二区三区 | 欧美xxxx83d | 成人黄色片免费 | 日韩黄色三级视频 | 97超碰97 | 国产一区在线视频观看 | 中文字幕日韩欧美在线 |