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

歡迎訪問 生活随笔!

生活随笔

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

python

python爬虫的技能_python-爬虫技能升级记录

發(fā)布時間:2025/3/19 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python爬虫的技能_python-爬虫技能升级记录 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

====== python-爬蟲技能升級記錄 ======

===== (一)感知爬蟲及爬取流程 =====

從簡單存取一個頁面到 爬取到大量的定量數(shù)據(jù),對技術要求更高,以百度百科數(shù)據(jù)爬取為入門練手項目.歷時一個月,經(jīng)歷很多問題.

爬取流程:分析目標網(wǎng)頁、得到url、拿url抓取、解析抓到的頁面、存取數(shù)據(jù)和解析出的url、去重 繼續(xù)迭代抓。

通過擴大關鍵詞范圍、從頁面提取更多相關url源來覆蓋更多可抓頁,提升抓取數(shù)據(jù)量。

chrome瀏覽器F12是個好工具,把網(wǎng)頁解析過程看的一目了然。

練好正則表達式,用好用熟python的各個爬蟲工具庫。

爬蟲這個活,很鍛煉分析he提取信息能力。

提高抓取速度,速度,速度.

===== (二)那些問題 =====

2.1 溝通上的問題:爬和存最終是要百度百科某個詞條的完整頁面,我誤以為是要進一步析取頁面某個部分的結果,浪費了點時間去練沒用到的正則表達式;

2.2 爬取過程中發(fā)現(xiàn)問題的能力:

爬取的前2天,數(shù)據(jù)從大量快速增長 到突然降到很小,爬取很突然變慢,結果是缺數(shù)據(jù)庫索引 數(shù)據(jù)查詢操作變慢拖累了爬取速度,

--------> 需要隨時觀察數(shù)據(jù)量變化及時把握住趨勢 提早解決問題;

每天評估抓取速度he目標數(shù)據(jù)量差距,提前開源--找新的關鍵詞或者新的抓取方式抓取源頭;

2.3 爬蟲背景知識欠缺:http_status, 200 301,302,代理,并發(fā)

2.4 數(shù)據(jù)上的問題

1) 遇到多義詞的特殊頁面 : https://baike.baidu.com/item/%E6%88%BF%E4%BA%A7 ;

2) 拼接關鍵詞錯誤 : https://baike.baidu.com/item/https://baike.baidu.com/error.html ;

3) 不存在的頁面處理問題: https://baike.baidu.com/error.html

==== [0001] url解析問題 ====結果

抓數(shù)據(jù)過程中,要從抓來的網(wǎng)頁內(nèi)容 提取url和所需關鍵字 ,用 urllib.parse.urlparse提取 路徑,urllib.parse.unquote解碼

比如 提取到url https://baike.baidu.com/item/%E5%86%8D%E7%94%9F%E4%B9%8B%E7%8E%8B%E6%9C%9D --> /item/再生之王朝

==== [0002] mysql crash了 ====

[問題]:數(shù)據(jù) 20G時,db crash,200w的數(shù)據(jù) int類型的字段上 index 重建 花了 1.5小時,追查無果

[解決]:是內(nèi)存耗盡,導致mysql的數(shù)據(jù)庫索引文件損壞。

mysql修復命令:

myisamchk? --force --update-state --sort_buffer_size=2G? /data/mysql/data/baidu/baidu_baike

==== [0003] 302是啥?allow_redirects的作用 ====

302是一種重定向狀態(tài)碼,表明,要取得最終結果需要進一步請求.

301?? (永久移動)? 請求的網(wǎng)頁已永久移動到新位置。 服務器返回此響應(對 GET 或 HEAD 請求的響應)時,會自動將請求者轉(zhuǎn)到新位置。

302?? (臨時移動)? 服務器目前從不同位置的網(wǎng)頁響應請求,但請求者應繼續(xù)使用原有位置來進行以后的請求。

303?? (查看其他位置) 請求者應當對不同的位置使用單獨的 GET 請求來檢索響應時,服務器返回此代碼。

304?? (未修改) 自從上次請求后,請求的網(wǎng)頁未修改過。 服務器返回此響應時,不會返回網(wǎng)頁內(nèi)容。

305?? (使用代理) 請求者只能使用代理訪問請求的網(wǎng)頁。 如果服務器返回此響應,還表示請求者應使用代理。

307?? (臨時重定向)? 服務器目前從不同位置的網(wǎng)頁響應請求,但請求者應繼續(xù)使用原有位置來進行以后的請求。

url = 'https://pan.baidu.com/s/1c0rjnbi'

tml = requests.get(url, headers=headers, allow_redirects=False)

return html.headers['Location']

allow_redirects=False的意義為拒絕默認的301/302重定向從而可以通過html.headers[‘Location’]拿到重定向的URL

https://baike.baidu.com/view/38072.html

urllib.error.HTTPError: HTTP Error 302: The HTTP server returned a redirect error that would lead to an infinite loop

==== [0004] 多thread的段錯誤問題 ====

起多個抓取thread ,運行一段時間報段錯誤 抓取程序崩潰--> mysql-connector.x86_64的包問題,換 mysql-connector_2.1.4 或者 pymysql后解決。

[115686.825855] python3.5[112899]: segfault at 50 ip 00007f506bc70ba1 sp 00007f506a823f40 error 4 in _mysql_connector.cpython-35m-x86_64-linux-gnu.so[7f506bc1a000+3b9000]

[116821.355924] python3.5[122287]: segfault at 50 ip 00007fb8aedfeba1 sp 00007fb8ad9b1f40 error 4 in _mysql_connector.cpython-35m-x86_64-linux-gnu.so[7fb8aeda8000+3b9000]

[117432.277293] python3.5[124563]: segfault at 50 ip 00007f3e80cebba1 sp 00007f3e7f89ef40 error 4 in _mysql_connector.cpython-35m-x86_64-linux-gnu.so[7f3e80c95000+3b9000]

[117682.160350] python3.5[129646]: segfault at 50 ip 00007feea0327ba1 sp 00007fee9ef1af40 error 4 in _mysql_connector.cpython-35m-x86_64-linux-gnu.so[7feea02d1000+3b9000]

[117891.158342] python3.5[633]: segfault at 50 ip 00007ff5d0581ba1 sp 00007ff5cf174f40 error 4 in _mysql_connector.cpython-35m-x86_64-linux-gnu.so[7ff5d052b000+3b9000]

==== [0005] XHR是啥? ====

XMLHttpRequest,動態(tài)異步請求。

[[https://www.cnblogs.com/syfwhu/p/6116323.html| XHR簡介 ]]

[[https://blog.csdn.net/zhiruchen/article/details/50983371|觀察數(shù)據(jù)-分析-構造請求-結果]]

[[https://blog.csdn.net/zwq912318834/article/details/78364710|XHR-尋找參數(shù)來源]]

[[https://blog.jamespan.me/2016/02/28/mysql-select-from-update|mysql-select-from-update]]

==== [0006] 遇到cookie了 ====

url = "https://baike.baidu.com/wikiui/api/getcertifyinfo?lemma={0}".format("%E5%8C%97%E4%BA%AC%E5%85%AB%E5%8F%8B%E7%A7%91%E6%8A%80%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8")

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36',

'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8',

'X-Requested-With': 'XMLHttpRequest',

}

session = requests.Session()

respn = session.post(url, verify = False, headers = headers, allow_redirects=False)

# https://baike.qixin.com/?eid=ea2b58fa-0b3f-440c-9076-d8735fdcc882&token=6018b5609a2c2ccf4cb8e4915ffcc4a7

sec_url = eval(respn.text)['data']['iframe'].replace('\/','/')

print('--sec_url--:' , sec_url)

cookie_jar = RequestsCookieJar()

cookie = respn.cookies.get_dict()

for k, v in cookie.items():

cookie_jar.set(k, v, domain="baidu.com")

print('cookie---', cookie, '\n--',str(cookie_jar))

rtext2 = session.post(sec_url, verify = False, headers = headers, cookies=cookie_jar, allow_redirects=False).text

print('rtext2--:\n' , rtext2)

[[https://blog.csdn.net/hpulfc/article/details/80084398| python--獲取和設置cookie]]

==== [0007] 再探requests庫 ====

python的變量引用原理, requests的post和get, requests的session的文檔和用途;

==== [0098] 爬取速度可能慢的因素 ====

1. 多線程處理到同樣任務,造成浪費;

2. 涉及到db操作的, 抓取隊列長度和 db隊列處理長度的最佳匹配;

==== [0099] 爬蟲的調(diào)試 ====

python的開發(fā)技能上:

1. 一定要了解整個抓取處理的流程;

2. 每個流程的環(huán)節(jié)打日志看消耗的時長;

3. 對目標數(shù)據(jù)量和程序的處理能力有清晰的感知;

4. 別瞎猜, 打日志看.

Linux系統(tǒng)有關:

1. 段錯誤出現(xiàn)后及時看dmesg ,能看到是mysql連接器的包報出異常;

===== (三)欠缺之處和待提升的技能 =====

欠缺之處:

梳理問題能力要鍛煉he提升, 進入狀態(tài)慢,在開發(fā)進度把控上欠缺節(jié)奏感。

爬蟲技術待提升技能:

并發(fā), 異步, cookie,登錄,驗證碼

----

[[https://github.com/davisking/dlib/issues/1104|段錯誤-參考資料 (the most important rule when writing multithreaded applications is that you can't have two threads modifying the same thing at the same time)]]

總結

以上是生活随笔為你收集整理的python爬虫的技能_python-爬虫技能升级记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 色臀av| 亚洲伦理在线观看 | 久久99精品国产麻豆婷婷洗澡 | 色婷婷免费视频 | 一个人看的毛片 | 新久草视频 | 精品国产乱码久久久久久鸭王1 | 欧美熟妇精品一区二区 | 亚洲综合涩 | 在线国产一区二区三区 | 三级国产三级在线 | 九九热av| 免费国产网站 | 国语对白做受按摩的注意事项 | 91av手机在线 | 久久合合 | 天海翼视频在线观看 | 亚洲一区二区三区四区不卡 | 一级黄色片在线观看 | 操极品女神| 亚洲AV午夜福利精品一级无码 | 成人国产精品免费观看动漫 | 国产性爱精品视频 | 欧美久久久久久久久久久久久久 | 91免费高清在线观看 | 免费人成视频在线播放 | 男生女生羞羞网站 | 呦呦精品 | 黄色三级视频网站 | 亚州av在线 | 国产资源一区 | 成人精品自拍 | 久操视频免费 | 理论片琪琪午夜电影 | 亚洲精品一区二区三区婷婷月 | 一级黄色视 | 男女国产精品 | 户外少妇对白啪啪野战 | 91精品国产欧美一区二区 | av网页在线观看 | 国产亚洲一区二区三区不卡 | 久久99热久久99精品 | 蕾丝视频污 | 夜夜看 | 岛国伊人| 国产aⅴ无码片毛片一级一区2 | aaa国产精品 | 久久综合热 | 永久免费av | 黄色av成人 | 极品人妻一区二区三区 | 成人在线视频播放 | 香蕉爱视频| 蜜桃久久一区二区三区 | 国产成人精品免高潮费视频 | 国产美女91呻吟求 | 日韩精品播放 | 精品一区二区三区免费毛片爱 | 狠狠干成人 | 久久久久1| 另类综合网 | 超碰97人 | 天堂中文字幕 | 韩国三级中文字幕 | 黄色av网站免费在线观看 | 韩国毛片一区二区三区 | 在线免费观看黄色小视频 | 三级国产网站 | 绿帽单男| 尤物一区二区 | 黄色三级a| 超碰999 | 欧美亚洲色图视频 | 久久一级黄色片 | 天天摸天天添 | 国产精品一区二区三区不卡 | 熟女少妇内射日韩亚洲 | 黄色片在线观看视频 | 中国黄色1级片 | 国产一区二区三区视频在线观看 | 生活片一级片 | 亚洲av无码电影在线播放 | 91免费影片| 美女自拍视频 | 日本在线视频中文字幕 | 黄色大片一级 | 欧美人妻精品一区二区三区 | 日韩在线视频中文字幕 | 高清无码一区二区在线观看吞精 | www.蜜桃av | 日韩精品字幕 | 爽好多水快深点欧美视频 | 高跟av| 激情五月色播五月 | 在线视频日本 | 国产又大又粗又爽的毛片 | 青青视频一区二区 | 你懂的网址在线观看 | 91综合国产 |