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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

js input复选框选中父级同时子级也选中_突破百度JS反爬获取百度文库数据下载...

發(fā)布時間:2025/3/19 javascript 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js input复选框选中父级同时子级也选中_突破百度JS反爬获取百度文库数据下载... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

畢業(yè),是一首離別的歌

前言

炎炎夏季,又快到了我們該說畢業(yè)的時候。都說分開是為了更好的相聚,讓我們彼此珍惜!

在這個炎熱的空檔期,對于技術(shù)渴望的宅男腐女們我們該做點什么呢?那最好的方式就是用編程來填補我們內(nèi)心的空虛。

編程難不難?那可不是鬧著玩的。不從事這一行的永遠不知道這行的艱辛。

俗話說的好;爬蟲在手天下我有,自從學(xué)習(xí)了爬蟲;看到什么都想盤它一番直到遇到JS反爬

不知大家有沒有遇到過這種情況;就是你在網(wǎng)上不管是查閱資料也好還是做什么,你會發(fā)現(xiàn)其實很多人寫的反爬一類的都只給你看結(jié)果,你根本不知道這個突破過程是怎么樣的,哪怕獲取到了代碼又有何用;下次再給你一道題你同樣還是不會。你品,你細品......

我覺得做任何事情一定有在短期內(nèi)簡單可行的方法。學(xué)習(xí)不應(yīng)該是苦差事,而應(yīng)該是快樂的,重要的是找到適合自己的學(xué)習(xí)方法

實戰(zhàn)

開始之前咱們先看一下要爬取的數(shù)據(jù)內(nèi)容~

分析網(wǎng)頁結(jié)構(gòu)

通過鼠標選擇器;選中文本之后在右側(cè)的元素面板中可以看到數(shù)據(jù)是包含在p標簽中的,我在想是否能夠通過re正則表達式直接獲取對應(yīng)的text文本。~~~哈哈,想簡單了 因為在仔細對比之后發(fā)現(xiàn),class所對應(yīng)的屬性是不規(guī)則的。

就算將文本獲取下來了,文字也是那種七拼八湊沒有排好版的;這樣的文章要來也沒有任何用呀;所以繼續(xù)分析唄......

一般像這種文章一類的;它的api確實很難逆向......自己埋得坑得給填平

經(jīng)過一番查找;發(fā)現(xiàn)這個VIP文庫好像是通過js文件然后生成了屬于自己獨有的api地址 ?

在不確定對不對的情況下,也沒有其他數(shù)據(jù)驗證的情況下;先解析排序一番 看是否能夠拿到數(shù)據(jù)。

代碼演示

第一步 請求網(wǎng)絡(luò)鏈接獲取網(wǎng)絡(luò)返回的數(shù)據(jù)

import?requests
import?re

#?設(shè)置會話列表
session?=?requests.session()
#?請求網(wǎng)址
def?get_content_url(url):
????return?session.get(url).content.decode('gbk')

def?main():
????url?=?input('請輸入你要下載文庫的URL地址:')
????content?=?get_content_url(url)
????print(content)

我們在獲取到該文章的url之后,查看該url對應(yīng)的網(wǎng)頁數(shù)據(jù)時,在這個網(wǎng)頁數(shù)據(jù)中發(fā)現(xiàn)它同時蘊含著真正文章的地址


htmlUrls?=?'{\x22ttf\x22:[{\x22pageIndex\x22:1,\x22param\x22:\x22&md5sum=b1f8fa5aeb9b6fed68ad32e063bfb0e5&range=0-31101&sign=7515dbae11\x22},{\x22pageIndex\x22:2,\x22param\x22:\x22&md5sum=b1f8fa5aeb9b6fed68ad32e063bfb0e5&range=31102-55306&sign=7515dbae11\x22},{\x22pageIndex\x22:3,\x22param\x22:\x22&md5sum=b1f8fa5aeb9b6fed68ad32e063bfb0e5&range=55307-93048&sign=7515dbae11\x22},{\x22pageIndex\x22:4,\x22param\x22:\x22&md5sum=b1f8fa5aeb9b6fed68ad32e063bfb0e5&range=93049-132192&sign=7515dbae11\x22},{\x22pageIndex\x22:5,\x22param\x22:\x22&md5sum=b1f8fa5aeb9b6fed68ad32e063bfb0e5&range=132193-&sign=7515dbae11\x22}],\x22json\x22:[{\x22pageIndex\x22:1,\x22pageLoadUrl\x22:\x22https:\\\/\\\/wkbjcloudbos.bdimg.com\\\/v1\\\/docconvert5004\\\/\\\/wk\\\/b1f8fa5aeb9b6fed68ad32e063bfb0e5\\\/0.json?responseCacheControl=max-age%3D3888000&responseExpires=Sun%2C%2014%20Jun%202020%2014%3A46%3A09%20%2B0800&authorization=bce-auth-v1%2Ffa1126e91489401fa7cc85045ce7179e%2F2020-04-30T06%3A46%3A09Z%2F3600%2Fhost%2F9e582203d432a9f847b718dab571a08017108e768f72ade5237ff652a7155251&x-bce-range=0-10894&token=eyJ0eXAiOiJKSVQiLCJ2ZXIiOiIxLjAiLCJhbGciOiJIUzI1NiIsImV4cCI6MTU4ODIzMjc2OSwidXJpIjp0cnVlLCJwYXJhbXMiOlsicmVzcG9uc2VDYWNoZUNvbnRyb2wiLCJyZXNwb25zZUV4cGlyZXMiLCJ4LWJjZS1yYW5nZSJdfQ%3D%3D.ErP4NzQSHI7omb0fL0PCVfgvk0ze0w0JUfZLWMMYDlM%3D.1588232769\x22},{\x22pageIndex\x22:2,\x22pageLoadUrl\x22:\x22https:\\\/\\\/wkbjcloudbos.bdimg.com\\\/v1\\\/docconvert5004\\\/\\\/wk\\\/b1f8fa5aeb9b6fed68ad32e063bfb0e5\\\/0.json?responseCacheControl=max-age%3D3888000&responseExpires=Sun%2C%2014%20Jun%202020%2014%3A46%3A09%20%2B0800&authorization=bce-auth-v1%2Ffa1126e91489401fa7cc85045ce7179e%2F2020-04-30T06%3A46%3A09Z%2F3600%2Fhost%2F9e582203d432a9f847b718dab571a08017108e768f72ade5237ff652a7155251&x-bce-range=10895-28260&token=eyJ0eXAiOiJKSVQiLCJ2ZXIiOiIxLjAiLCJhbGciOiJIUzI1NiIsImV4cCI6MTU4ODIzMjc2OSwidXJpIjp0cnVlLCJwYXJhbXMiOlsicmVzcG9uc2VDYWNoZUNvbnRyb2wiLCJyZXNwb25zZUV4cGlyZXMiLCJ4LWJjZS1yYW5nZSJdfQ%3D%3D.9i8HdDDmUge8YbVEMtZAnelm%2FDSLDfBfgI2Jx7P16aE%3D.1588232769\x22},{\x22pageIndex\x22:3,\x22pageLoadUrl\x22:\x22https:\\\/\\\/wkbjcloudbos.bdimg.com\\\/v1\\\/docconvert5004\\\/\\\/wk\\\/b1f8fa5aeb9b6fed68ad32e063bfb0e5\\\/0.json?responseCacheControl=max-age%3D3888000&responseExpires=Sun%2C%2014%20Jun%202020%2014%3A46%3A09%20%2B0800&authorization=bce-auth-v1%2Ffa1126e91489401fa7cc85045ce7179e%2F2020-04-30T06%3A46%3A09Z%2F3600%2Fhost%2F9e582203d432a9f847b718dab571a08017108e768f72ade5237ff652a7155251&x-bce-range=28261-38549&token=eyJ0eXAiOiJKSVQiLCJ2ZXIiOiIxLjAiLCJhbGciOiJIUzI1NiIsImV4cCI6MTU4ODIzMjc2OSwidXJpIjp0cnVlLCJwYXJhbXMiOlsicmVzcG9uc2VDYWNoZUNvbnRyb2wiLCJyZXNwb25zZUV4cGlyZXMiLCJ4LWJjZS1yYW5nZSJdfQ%3D%3D.4SABpIpgQ%2BnueqTBSwfTo3nLieKfUcGU%2FZU9OZ%2F4nk0%3D.1588232769\x22},{\x22pageIndex\x22:4,\x22pageLoadUrl\x22:\x22https:\\\/\\\/wkbjcloudbos.bdimg.com\\\/v1\\\/docconvert5004\\\/wk\\\/b1f8fa5aeb9b6fed68ad32e063bfb0e5\\\/0.json?responseContentType=application%2Fjavascript&responseCacheControl=max-age%3D3888000&responseExpires=Sun%2C%2014%20Jun%202020%2014%3A46%3A09%20%2B0800&authorization=bce-auth-v1%2Ffa1126e91489401fa7cc85045ce7179e%2F2020-04-30T06%3A46%3A09Z%2F3600%2Fhost%2F5a356ec62775deff7aa1b5b5b4937945c319efe9126778be6254387b75ca1626&x-bce-range=38550-52301&token=eyJ0eXAiOiJKSVQiLCJ2ZXIiOiIxLjAiLCJhbGciOiJIUzI1NiIsImV4cCI6MTU4ODIzMjc2OSwidXJpIjp0cnVlLCJwYXJhbXMiOlsicmVzcG9uc2VDb250ZW50VHlwZSIsInJlc3BvbnNlQ2FjaGVDb250cm9sIiwicmVzcG9uc2VFeHBpcmVzIiwieC1iY2UtcmFuZ2UiXX0%3D.L5iFcYymhKwKiOA3dVRyBtUXFG9QRfohHiaIzS2MpQU%3D.1588232769\x22},{\x22pageIndex\x22:5,\x22pageLoadUrl\x22:\x22https:\\\/\\\/wkbjcloudbos.bdimg.com\\\/v1\\\/docconvert5004\\\/\\\/wk\\\/b1f8fa5aeb9b6fed68ad32e063bfb0e5\\\/0.json?responseCacheControl=max-age%3D3888000&responseExpires=Sun%2C%2014%20Jun%202020%2014%3A46%3A09%20%2B0800&authorization=bce-auth-v1%2Ffa1126e91489401fa7cc85045ce7179e%2F2020-04-30T06%3A46%3A09Z%2F3600%2Fhost%2F9e582203d432a9f847b718dab571a08017108e768f72ade5237ff652a7155251&x-bce-range=52302-&token=eyJ0eXAiOiJKSVQiLCJ2ZXIiOiIxLjAiLCJhbGciOiJIUzI1NiIsImV4cCI6MTU4ODIzMjc2OSwidXJpIjp0cnVlLCJwYXJhbXMiOlsicmVzcG9uc2VDYWNoZUNvbnRyb2wiLCJyZXNwb25zZUV4cGlyZXMiLCJ4LWJjZS1yYW5nZSJdfQ%3D%3D.9VimXbBUqMM9a8uJUhZFYjWxNzEnd0X485v%2FiCIHO24%3D.1588232769\x22}],\x22png\x22:[]}'

第二步 正則表達式解析數(shù)據(jù)

def?get_content_type(content):
????print(re.findall(r"docType.*?\:.*?\'(.*?)\'\,",?content))

是不是沒有任何發(fā)現(xiàn);腦子有點懵~ 慢慢來!我已經(jīng)標注出來了。既然我們發(fā)現(xiàn)了這個數(shù)據(jù)集,那么接下來嘗試著解析一下唄;看看隱藏這么深的究竟是何方神圣。

根據(jù)上面獲取到的數(shù)據(jù)集經(jīng)過再一次的解析;我們得到了一個鏈接;好像~貌似看到希望了呀哈哈~

再解析一下;此時我們已經(jīng)通過正則表達式取得該文章的地址了,這些地址不止一個;接下來讓我們把代碼先完善一下

注意:因為每個文章的類型是不同的;看下圖;所以這里只做了doc格式的解析,其他的思路都差不多,有心的同學(xué)可以參照著我這種方案自己動手試一下。

def?get_content_type(content):
????return?re.findall(r"docType.*?\:.*?\'(.*?)\'\,",?content)[0]

使用文章的地址再次向服務(wù)器發(fā)送請求時,獲取到的文章數(shù)據(jù),但是此時的數(shù)據(jù)還并不是文章的內(nèi)容,而是一個json結(jié)構(gòu)的數(shù)據(jù)集,這里大家看起來可能有點懵逼,我們稍微給他處理一下

經(jīng)過解析之后;這樣看起來就清晰了很多;大家看下圖的左邊?~ 然后再看右邊?解析整理之后的

不過看到這個數(shù)據(jù)集有些腦袋懵懵的,頭皮發(fā)麻有沒有;經(jīng)過一番摸索之后;給大家整理一下結(jié)論。

這個數(shù)據(jù)集是基于百度文庫自己的閱讀器生成的,里面包含了非常多的信息,我們需要的文章內(nèi)容就在其中,只不過它是以五維的位置參數(shù),來標明內(nèi)容出現(xiàn)的位置。

比如下面這樣,內(nèi)容就是 c 這一串的Unicode編碼,p 就是其位置參數(shù),什么高啊寬啊等

有種無從下手的感覺;經(jīng)過一番實驗;這里我們可以根據(jù) y 的數(shù)值對整個文檔進行簡單排列,然后設(shè)置編解碼。

不理解的同學(xué)可以根據(jù)代碼。自己實踐一下;這里就不細說了!

def?get_content_doc(content):
????result?=?''
????url_list?=?re.findall('(https.*?0.json.*?)\\\\x22}',?content)
????#?print(url_list)
????url_list?=?[addr.replace("\\\\\\/",?"/")?for?addr?in?url_list]
????for?url?in?url_list[:-5]:
????????content?=?fetch_url(url)
????????y?=?0
????????txtlists?=?re.findall('"c":"(.*?)".*?"y":(.*?),',?content)
????????for?item?in?txtlists:
????????????if?not?y?==?item[1]:
????????????????y?=?item[1]
????????????????n?=?'\n'
????????????else:
????????????????n?=?''
????????????result?+=?n
????????????result?+=?item[0].encode('utf-8').decode('unicode_escape',?'ignore')
????return?result

第三步 保存數(shù)據(jù)

def?save_file(filename,?content):
????with?open(filename,?'w',?encoding='utf-8')?as?f:
????????f.write(content)
????????print('已保存為:'?+?filename)

if?__name__?==?"__main__":
????main()

在這個浮躁的時代;竟然還有人能堅持篇篇原

如果本文對你學(xué)習(xí)有所幫助-可以點贊?+ 關(guān)注!將持續(xù)更新更多新的文章

支持原創(chuàng)。感謝!

總結(jié)

以上是生活随笔為你收集整理的js input复选框选中父级同时子级也选中_突破百度JS反爬获取百度文库数据下载...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 奇米久久 | 久久久久久久久免费看无码 | 成人午夜视频在线观看 | 欧美另类视频在线观看 | 亚洲av无码一区二区三区在线观看 | 婷婷去俺也去 | 日本精品免费视频 | 国产精品欧美一区喷水 | 欧美日韩a级 | 韩国av电影网站 | 欧美一极片 | 老妇裸体性激交老太视频 | 久久综合久色欧美综合狠狠 | 日本做爰三级床戏 | 亚洲精品久久久久久久久久久 | 亚洲在线精品视频 | 色男人在线| 亚洲污网站 | 国产色无码精品视频国产 | 伊人免费在线 | 姐姐你真棒插曲快来救救我电影 | 乱码av| 亚洲精品久久久蜜桃 | 亚洲色图网站 | 在线亚洲一区二区 | 亚洲粉嫩 | 国产精品美女高潮无套 | 在线不卡免费视频 | 黄色小说在线免费观看 | 少妇人妻丰满做爰xxx | 色噜| 国产欧美日韩在线 | 伊人一级 | 国产色综合天天综合网 | 丰满人妻一区二区三区四区 | 欧美激情综合五月色丁香 | av黄色大片 | 狠狠97| 黄色一级网址 | 中国大陆高清aⅴ毛片 | 韩国三级hd中文字幕的背景音乐 | 亚洲精品一卡二卡 | 亚洲综合精品国产一区二区三区 | 麻豆激情视频 | 黄色av一级片 | 欧美日韩一二三四 | 亚洲观看黄色网 | 欧美午夜精品 | 四虎最新站名点击进入 | 成人在线观看91 | 日韩中文字幕在线看 | 国产三级国产精品国产国在线观看 | 可以免费看的av毛片 | 日韩成人三级 | 成人做爰www看视频软件 | 国产欧美二区 | 成人精品福利 | 成人av电影在线播放 | 春意影院福利社 | 俺去日 | 岛国福利视频 | 亚洲黄色中文字幕 | 91av免费| 亚洲欧美激情精品一区二区 | 欧美日韩一区二区三区四区五区 | 久久精品aⅴ无码中文字字幕重口 | 国产伦精品视频一区二区三区 | 欧美视频一二区 | 亚洲自拍偷拍区 | 女久久| 国模无码视频一区 | jlzzjlzz亚洲女人18 | 波多野结衣av电影 | 国产日韩在线观看一区 | 美国少妇性做爰 | 综合色99| 婷婷中文字幕在线 | 97久久久久 | 亚洲免费观看高清完整版在线 | 激情五月在线观看 | 女生脱裤子让男生捅 | 色姑娘久 | 九一精品视频 | 国产精品免费91 | 蜜臀一区二区三区精品免费视频 | 男人用嘴添女人下身免费视频 | 精品视频无码一区二区三区 | 三上悠亚ssⅰn939无码播放 | 欧洲午夜精品 | 久热精品视频 | 成熟人妻av无码专区 | 国产视频在线观看视频 | 操操日 | 岛国精品 | 青草视频在线播放 | 少妇高潮av| 伊人伊网| 国产美女主播视频 | 四虎综合|