亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python爬蟲練習(xí)匯總

 更新時間:2022年01月25日 13:23:10   作者:路過_聽雨聲  
這篇文章主要給大家分享的是Python爬蟲練習(xí)題,文章以爬取南陽理工OJ為題目,根據(jù)頁面數(shù)據(jù)顯示可以查看到只有題號、難度、標(biāo)題、通過率、存有數(shù)據(jù),因此只需要對此四項(xiàng)數(shù)據(jù)進(jìn)行爬取,下面一起靜茹文章查看具體的操作過程吧</P><P>

一、 軟件配置

安裝必備爬蟲環(huán)境軟件:

  • python 3.8
  • pip install requests
  • pip install beautifulsoup4

二、爬取南陽理工OJ題目

網(wǎng)站地址:http://www.51mxd.cn/

(一)頁面分析

切換頁面的時候url網(wǎng)址發(fā)生變動,因此切換頁面時切換第n頁則為n.html

查看html代碼:

在每一個標(biāo)簽內(nèi)都是<tr><td></td></tr>使用嵌套模式,因此可以使用爬蟲進(jìn)行爬取

(二)代碼編寫

導(dǎo)入相應(yīng)的包

#導(dǎo)入包
import requests
from bs4 import BeautifulSoup
import csv
from tqdm import tqdm#在電腦終端上顯示進(jìn)度,使代碼可視化進(jìn)度加快

定義訪問瀏覽器所需的請求頭和寫入csv文件需要的表頭及存儲列表

# 模擬瀏覽器訪問
Headers = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3741.400 QQBrowser/10.5.3863.400'
# 題目數(shù)據(jù)
subjects = []
# 表頭
csvHeaders = ['題號', '難度', '標(biāo)題', '通過率', '通過數(shù)/總提交數(shù)']

定義爬取函數(shù),并刪選信息

for pages in tqdm(range(1, 11 + 1)):
    r = requests.get(f'http://www.51mxd.cn/problemset.php-page={pages}.htm', Headers)

    r.raise_for_status()
    r.encoding = 'utf-8'
    soup = BeautifulSoup(r.text, 'html5lib')

    td = soup.find_all('td')#講所有含TD的項(xiàng)提取出來
    subject = []
    for t in td:
        if t.string is not None:
            #利用string方法獲取其中的內(nèi)容
            subject.append(t.string)
            if len(subject) == 5:
                subjects.append(subject)
                subject = []

寫入文件

with open('D:/NYOJ_Subjects.csv', 'w', newline='') as file:
    fileWriter = csv.writer(file)
    fileWriter.writerow(csvHeaders)  # 寫入表頭
    fileWriter.writerows(subjects)   # 寫入數(shù)據(jù)

print('\n題目信息爬取完成?。?!')

結(jié)果

三、爬取學(xué)校信息通知

網(wǎng)站地址:http://news.cqjtu.edu.cn/xxtz.htm

(一)頁面分析

可以看到在html跳轉(zhuǎn)采用 n-方式 因?yàn)闉?code>n-.html

爬取數(shù)據(jù),日期+新聞題目

(二)代碼編寫

import requests
from bs4 import BeautifulSoup
import csv

# 獲取每頁內(nèi)容
def get_one_page(url):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'
    }
    try:
        info_list_page = []  # 一頁的所有信息
        resp = requests.get(url, headers=headers)
        resp.encoding = resp.status_code
        page_text = resp.text
        soup = BeautifulSoup(page_text, 'lxml')
        li_list = soup.select('.left-list > ul > li')  # 找到所有l(wèi)i標(biāo)簽
        for li in li_list:
            divs = li.select('div')
            date = divs[0].string.strip()
            title = divs[1].a.string
            info = [date, title]
            info_list_page.append(info)
    except Exception as e:
        print('爬取' + url + '錯誤')
        print(e)
        return None
    else:
        resp.close()
    print('爬取' + url + '成功')
    return info_list_page

# main
def main():
    # 爬取所有數(shù)據(jù)
    info_list_all = []
    base_url = 'http://news.cqjtu.edu.cn/xxtz/'
    for i in range(1, 67):
        if i == 1:
            url = 'http://news.cqjtu.edu.cn/xxtz.htm'
        else:
            url = base_url + str(67 - i) + '.htm'
        info_list_page = get_one_page(url)
        info_list_all += info_list_page
    # 存入數(shù)據(jù)
    with open('D:/教務(wù)新聞.csv', 'w', newline='', encoding='utf-8') as file:
        fileWriter = csv.writer(file)
        fileWriter.writerow(['日期', '標(biāo)題'])  # 寫入表頭
        fileWriter.writerows(info_list_all)  # 寫入數(shù)據(jù)


if __name__ == '__main__':
    main()

結(jié)果:

總結(jié):

本次實(shí)驗(yàn)對利用Python 進(jìn)行爬蟲進(jìn)行了學(xué)習(xí),并實(shí)現(xiàn)了對網(wǎng)站信息的爬取。

到此這篇關(guān)于Python爬蟲練習(xí)匯總的文章就介紹到這了,更多相關(guān)Python爬蟲練習(xí)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于Python獲取城市近7天天氣預(yù)報(bào)

    基于Python獲取城市近7天天氣預(yù)報(bào)

    這篇文章主要介紹了基于Python獲取城市近7天天氣預(yù)報(bào),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • python實(shí)現(xiàn)計(jì)數(shù)排序與桶排序?qū)嵗a

    python實(shí)現(xiàn)計(jì)數(shù)排序與桶排序?qū)嵗a

    這篇文章主要介紹了python計(jì)數(shù)排序與桶排序,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • python幾種常用功能實(shí)現(xiàn)代碼實(shí)例

    python幾種常用功能實(shí)現(xiàn)代碼實(shí)例

    這篇文章主要介紹了python幾種常用功能實(shí)現(xiàn)代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • Python?pyecharts?Boxplot箱線圖的實(shí)現(xiàn)

    Python?pyecharts?Boxplot箱線圖的實(shí)現(xiàn)

    本文主要介紹了Python?pyecharts?Boxplot箱線圖的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • Python 迭代,for...in遍歷,迭代原理與應(yīng)用示例

    Python 迭代,for...in遍歷,迭代原理與應(yīng)用示例

    這篇文章主要介紹了Python 迭代,for...in遍歷,迭代原理與應(yīng)用,結(jié)合實(shí)例形式分析了Python迭代與遍歷的相關(guān)操作技巧與使用注意事項(xiàng),需要的朋友可以參考下
    2019-10-10
  • Python做智能家居溫濕度報(bào)警系統(tǒng)

    Python做智能家居溫濕度報(bào)警系統(tǒng)

    本文為大家?guī)砹薖ython通過HTTP協(xié)議做一個廉價的溫濕度報(bào)警系統(tǒng)。感興趣的朋友跟隨小編一起看看吧
    2018-09-09
  • python中如何正確使用正則表達(dá)式的詳細(xì)模式(Verbose mode expression)

    python中如何正確使用正則表達(dá)式的詳細(xì)模式(Verbose mode expression)

    許多程序設(shè)計(jì)語言都支持利用正則表達(dá)式進(jìn)行字符串操作,python自然也不例外,下面這篇文章主要給大家介紹了關(guān)于在python中如何正確使用正則表達(dá)式的詳細(xì)模式(Verbose mode expression)的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-11-11
  • Python入門教程 超詳細(xì)1小時學(xué)會Python

    Python入門教程 超詳細(xì)1小時學(xué)會Python

    本文適合有經(jīng)驗(yàn)的程序員盡快進(jìn)入Python世界.特別地,如果你掌握J(rèn)ava和Javascript,不用1小時你就可以用Python快速流暢地寫有用的Python程序.
    2006-09-09
  • 分享6個好用到爆的Pycharm插件

    分享6個好用到爆的Pycharm插件

    這篇文章主要介紹了分享6個好用到爆的Pycharm插件,在安裝上之后,我們的編程效率、工作效率都能夠得到極大地提升,下面分享的內(nèi)容,需要的小伙伴可以參考一下
    2022-02-02
  • 用Python實(shí)現(xiàn)一個簡單的用戶系統(tǒng)

    用Python實(shí)現(xiàn)一個簡單的用戶系統(tǒng)

    大家好,本篇文章主要講的是用Python實(shí)現(xiàn)一個簡單的用戶系統(tǒng),感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01

最新評論