欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2021年01月18日 14:40:48   作者:Winqihe  
這篇文章主要介紹了詳解Python爬蟲爬取博客園問題列表所有的問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一.準(zhǔn)備工作

  • 首先,本文使用的技術(shù)為 python+requests+bs4,沒有了解過可以先去了解一下。
  • 我們的需求是將博客園問題列表中的所有問題的題目爬取下來。

在這里插入圖片描述 

二.分析:

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

在這里插入圖片描述

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

三.代碼實現(xiàn)

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

import requests
from 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時候,根據(jù)參數(shù)來填充頁數(shù)page,
代碼實現(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 requests
from bs4 import BeautifulSoup
if __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+'頁爬取成功!')

四.運行結(jié)果

運行代碼:

在這里插入圖片描述

在這里插入圖片描述

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

相關(guān)文章

  • MySQL最常見的操作語句小結(jié)

    MySQL最常見的操作語句小結(jié)

    這篇文章主要介紹了MySQL最常見的操作語句小結(jié),與表和庫相關(guān)的這些語句是學(xué)習(xí)MySQL中最基礎(chǔ)的知識,需要的朋友可以參考下
    2015-05-05
  • Python實現(xiàn)模擬瀏覽器請求及會話保持操作示例

    Python實現(xiàn)模擬瀏覽器請求及會話保持操作示例

    這篇文章主要介紹了Python實現(xiàn)模擬瀏覽器請求及會話保持操作,結(jié)合實例形式分析了Python基于urllib與urllib2模塊模擬瀏覽器請求及cookie保存會話相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07
  • 安裝pytorch時報sslerror錯誤的解決方案

    安裝pytorch時報sslerror錯誤的解決方案

    這篇文章主要介紹了安裝pytorch時報sslerror錯誤的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • python基于paramiko將文件上傳到服務(wù)器代碼實現(xiàn)

    python基于paramiko將文件上傳到服務(wù)器代碼實現(xiàn)

    這篇文章主要介紹了python基于paramiko將文件上傳到服務(wù)器代碼實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • Python3 pandas 操作列表實例詳解

    Python3 pandas 操作列表實例詳解

    這篇文章主要介紹了Python3 pandas 操作列表實例詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • 解決Python requests 報錯方法集錦

    解決Python requests 報錯方法集錦

    這篇文章主要介紹了解決Python requests 報錯方法集錦的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • python 通過文件夾導(dǎo)入包的操作

    python 通過文件夾導(dǎo)入包的操作

    這篇文章主要介紹了python 通過文件夾導(dǎo)入包的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • 實例代碼講解Python 線程池

    實例代碼講解Python 線程池

    這篇文章主要介紹了Python 線程池的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-08-08
  • python copy模塊中的函數(shù)實例用法

    python copy模塊中的函數(shù)實例用法

    在本篇內(nèi)容里小編給大家整理了關(guān)于python copy模塊的基礎(chǔ)知識點及實例用法,有需要的朋友們可以跟著學(xué)習(xí)下。
    2021-09-09
  • python with statement 進(jìn)行文件操作指南

    python with statement 進(jìn)行文件操作指南

    在Python中,with關(guān)鍵字是一個替你管理實現(xiàn)上下文協(xié)議對象的好東西。例如:file等。在file的結(jié)束,會自動關(guān)閉該文件句柄。而這正是本文所需要的
    2014-08-08

最新評論