国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

詳解Python爬蟲爬取博客園問題列表所有的問題

瀏覽:22日期:2022-06-29 15:45:01
一.準(zhǔn)備工作 首先,本文使用的技術(shù)為 python+requests+bs4,沒有了解過可以先去了解一下。 我們的需求是將博客園問題列表中的所有問題的題目爬取下來。

詳解Python爬蟲爬取博客園問題列表所有的問題

二.分析: 首先博客園問題列表頁面右鍵點(diǎn)擊檢查 通過Element查找問題所對應(yīng)的屬性或標(biāo)簽

詳解Python爬蟲爬取博客園問題列表所有的問題

可以發(fā)現(xiàn)在div class ='one_entity'中存在頁面中分別對應(yīng)每一個(gè)問題接著div class ='news_item'中h2標(biāo)簽下是我們想要拿到的數(shù)據(jù)

三.代碼實(shí)現(xiàn)

首先導(dǎo)入requests和BeautifulSoup

import requestsfrom bs4 import BeautifulSoup

由于很多網(wǎng)站定義了反爬策略,所以進(jìn)行偽裝一下

headers = { ’User-Agent’: ’Mozilla / 5.0(WindowsNT10.0;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 87.0.4280.141Safari / 537.36’ }

在這里User-Agent只是其中的一種方式,而且大家的User-Agent可能不同。

爬取數(shù)據(jù)main代碼

url = ’https://q.cnblogs.com/list/unsolved?’ fp = open(’blog’, ’w’, encoding=’utf-8’) for page in range(1,26): page = str(page) param = { ’page’:page } page_text = requests.get(url=url,params=param,headers=headers).text page_soup = BeautifulSoup(page_text,’lxml’) text_list = page_soup.select(’.one_entity > .news_item > h2’) for h2 in text_list: text = h2.a.string fp.write(text+’n’) print(’第’+page+’頁爬取成功!’)

注意一下這里,由于我們需要的是多張頁面的數(shù)據(jù),所以在發(fā)送請求的url中我們就要針對不同的頁面發(fā)送請求,https://q.cnblogs.com/list/unsolved?page=我們要做的是在發(fā)送請求的url時(shí)候,根據(jù)參數(shù)來填充頁數(shù)page,代碼實(shí)現(xiàn):

url = ’https://q.cnblogs.com/list/unsolved?’ for page in range(1,26): page = str(page) param = { ’page’:page } page_text = requests.get(url=url,params=param,headers=headers).text

將所有的h2數(shù)組拿到,進(jìn)行遍歷,通過取出h2中a標(biāo)簽中的文本,并將每取出來的文本寫入到文件中,由于要遍歷多次,所以保存文件在上面的代碼中。

text_list = page_soup.select(’.one_entity > .news_item > h2’) for h2 in text_list: text = h2.a.string fp.write(text+’n’)

完整代碼如下:

import requestsfrom bs4 import BeautifulSoupif __name__ == ’__main__’: headers = { ’User-Agent’: ’Mozilla / 5.0(WindowsNT10.0;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 87.0.4280.141Safari / 537.36’ } url = ’https://q.cnblogs.com/list/unsolved?’ fp = open(’blog’, ’w’, encoding=’utf-8’) for page in range(1,26): page = str(page) param = { ’page’:page } page_text = requests.get(url=url,params=param,headers=headers).text page_soup = BeautifulSoup(page_text,’lxml’) text_list = page_soup.select(’.one_entity > .news_item > h2’) for h2 in text_list: text = h2.a.string fp.write(text+’n’) print(’第’+page+’頁爬取成功!’)四.運(yùn)行結(jié)果

運(yùn)行代碼:

詳解Python爬蟲爬取博客園問題列表所有的問題

詳解Python爬蟲爬取博客園問題列表所有的問題

到此這篇關(guān)于詳解Python爬蟲爬取博客園問題列表所有的問題的文章就介紹到這了,更多相關(guān)Python爬蟲爬取列表內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 湖北省| 浮山县| 双辽市| 嵊泗县| 略阳县| 射阳县| 余庆县| 闵行区| 额尔古纳市| 汉寿县| 咸丰县| 甘谷县| 合川市| 广丰县| 天水市| 酒泉市| 虹口区| 丰原市| 高碑店市| 天等县| 澳门| 博爱县| 花莲县| 延寿县| 龙江县| 多伦县| 南江县| 尖扎县| 长兴县| 南和县| 台前县| 手机| 沅陵县| 静海县| 秀山| 固始县| 延庆县| 惠安县| 兴隆县| 卓尼县| 满城县|