日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

作者:Python進階者

來源:Python爬蟲與數(shù)據(jù)挖掘

一、思路

很多網(wǎng)站都對requests反爬了,這種時候,一般有兩個選擇,要不就找js接口,要不就用requests_html等其他工具,這里他使用了后者requests_html工具。

二、分析

一開始直接使用requests進行請求,發(fā)現(xiàn)得到的響應(yīng)數(shù)據(jù)并不對,和源碼相差萬里,然后就考慮到網(wǎng)站應(yīng)該是有反爬的,嘗試加了一些ua,headers還是不行,于是乎想著使用requests_html工具小試牛刀。

requests庫請求獲取不到數(shù)據(jù)怎么辦?不妨試試看這種妙法

 

三、代碼

下面就奉上本次爬蟲的代碼,歡迎大家積極嘗試。

# 作者:@有點意思
import re
import requests_html


def 抓取源碼(url):
    user_agent = requests_html.user_agent()
    session = requests_html.HTMLSession()    
    headers = {
        "cookie": "BAIDUID=D664B1FA319D687E8EE0F9E8D643780A:FG=1; BIDUPSID=D664B1FA319D687E8EE0F9E8D643780A; PSTM=1620719199; __yjs_duid=1_c6692c2be6c2ffe04f29102282538ba81620719216498; BDUSS=dzdjlXdGsyTkhYdUFGeWFZOH40SmNWSkpDeUlPYS1UbU4xYklkYnFPY0Z5NTFoRVFBQUFBJCQAAAAAAAAAAAEAAAAmfcsXTUFPQlVDSEkyMDExAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU-dmEFPnZhWD; BDUSS_BFESS=dzdjlXdGsyTkhYdUFGeWFZOH40SmNWSkpDeUlPYS1UbU4xYklkYnFPY0Z5NTFoRVFBQUFBJCQAAAAAAAAAAAEAAAAmfcsXTUFPQlVDSEkyMDExAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU-dmEFPnZhWD; BAIDUID_BFESS=2C6304C3307DE9DB6DD487CC5C7C2DD3:FG=1; BDPPN=4464e3ebfa50be9e28b4d1c23e380603; _j54_6ae_=xlTM-TogKuTwIujX2VajREagog-ZV6RQfAmd; log_guid=0dad4e957fd92b3d86f994e0a93cee98; _j47_ka8_=57; __yjs_st=2_NzJkNjAyZjJmMmE1MTFmOTM1YWFlOWQwZWFlMjFkMTNmZDA0ZTlkNjRmNmUwM2NlZTQ4Y2Y4ZGM5ZjBjMDFlN2E0NzdiNDk4ZjdlNThmMmI4NjkxNDRjYmQ0MjZhMTZkMWYzMTBiYjUyMzJlMDdhMWQwZmQ2YjAwOWNiMTA5ZmJmNGNmNmE3OTk1ODZmZjkyMGQzZGZmNDdmZDJmZGU1MjE3MjgwMWRkNWYyMDlhNWNiYWM3YjNkMWI1MzU5NWM2MjEzYWMxODUyNDcyZDdjYTMzZDRiY2FlYTNmYmRiN2JkYzU1MWZiNWM3OTc4ZjExYmYwNGNlNTA5MjhjMWQ4Yl83XzEyZjk1ZDEw; Hm_lvt_ad52b306e1ae4557f5d3534cce8f8bbf=1637699929,1637713962,1637849108; Hm_lpvt_ad52b306e1ae4557f5d3534cce8f8bbf=1637849108; ab_sr=1.0.1_OTBkZjg4MzZjYjFhMWMyODgxZTM4MDZiNGViYTRkYjFhNDFiNWU1NWUyZjU4NDI3YjVjYTM1YTBiYTc1M2Y0ZTA5ZTI5YTZjNDQ4ZGFjMzE2NTU5ZTkwMWFkYWI0OGE5Nzc4MWFiOGU5N2VmNzJjMDdiyTk4NjYyY2E1NzQ4MzIzMDVmOTc2MDZjOTA0NTYyODNjNmUxNjAwNzlmNThlYQ==; _s53_d91_=93c39820170a0a5e748e1ac9ecc79371df45a908d7031a5e0e6df033fcc8068df8a85a45f59cb9faa0f164dd33ed0c72405da53b835d694f9513b3e1cb6e4a96799af3f84bd42f912f1c8ae0446a53f275c4e5a7894aeb6c9857d9df8629680517ba9801c04e1c714b46f860c3cbb2ecb1a3847388bf1b3c4bcbbd8119b62261a0a625c3c8b053758aa8fe29ec0f7fffe3b49bb0f77fea4df98a0f472d86bde82df374a7e5fb907b27d3187299c8b7ef65e28b9e042741e29587ab5829dfbafca8de50eb8162607986625ecd31d16a1f; _y18_s21_=4c8c0b95; RT="z=1&dm=baidu.com&si=nm8z611r2fr&ss=kwf1266k&sl=2&tt=xuh&bcn=https%3A%2F%2Ffclog.baidu.com%2Flog%2Fweirwood%3Ftype%3Dperf&ld=mmj&ul=ilwy"",
        "User-Agent": user_agent
    } 
    
    r = session.get(url, headers=headers)
    html = r.html.html
    
    return html  # 注意!這里抓取到的源碼和手動打開的頁面源碼不一樣


def 解密(列表):  # unicode轉(zhuǎn)化成漢字
    print(列表)
    return [eval(i) for i in 列表]


def 解析頁面(html):
    公司列表 = re.findall(r'titleName":(".*?")', html, re.DOTALL)
    # 注意!此處編寫正則時,要匹配的源碼是函數(shù)“抓取源碼”得到的html
    # 此處正則匹配時一定要把引號帶上!否則eval會報錯!
    return 解密(公司列表)    


if __name__ == "__main__":
    # 不用抓包,這里的url就是用戶搜索時的頁面
    url = "https://某某查網(wǎng)站/s?q=%E4%B8%8A%E6%B5%B7%E5%99%A8%E6%A2%B0%E5%8E%82&t=0"
    html = 抓取源碼(url)
    print(html)
    公司列表 = 解析頁面(html)
    print(公司列表)

這里大家可能覺得很奇怪,竟然有中文的函數(shù)命名和變量命名,這里是應(yīng)原作者的要求,所以未做修改,但是不影響程序執(zhí)行效果。

程序運行之后,可以看到目標字段都可以抓下來。

requests庫請求獲取不到數(shù)據(jù)怎么辦?不妨試試看這種妙法

 

四、總結(jié)

我是Python進階者。本文基于粉絲提問,針對一次有趣的爬蟲經(jīng)歷,分享一個實用的爬蟲經(jīng)驗給大家。下次再遇到類似這種使用requests庫無法抓取的網(wǎng)頁,或者看不到包的網(wǎng)頁,不妨試試看文中的requests_html方法,說不定有妙用噢!

針對本文中的網(wǎng)頁,除了文章這種“投機取巧”方法外,用selenium抓取也是可行的,速度慢一些,但是可以滿足要求。小編相信肯定還有其他的方法的,也歡迎大家在評論區(qū)諫言。

分享到:
標簽:requests
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定