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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

爬虫入门练习

發(fā)布時(shí)間:2023/12/10 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 爬虫入门练习 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

  • 網(wǎng)絡(luò)爬蟲
  • 一、爬取[南陽理工OJ題目](http://www.51mxd.cn/problemset.php-page=1.htm)
    • python代碼
    • 結(jié)果
  • 二、爬取[重交新聞](http://news.cqjtu.edu.cn/xxtz.htm)
    • python代碼
    • 結(jié)果
  • 小結(jié)

網(wǎng)絡(luò)爬蟲

簡介

網(wǎng)絡(luò)爬蟲英文名叫Web Crawler戒WebSpider。是一種自動(dòng)瀏覽網(wǎng)頁并采集所需要信息癿程序。
通過編寫腳本模擬瀏覽器發(fā)起請(qǐng)求獲取數(shù)據(jù)。爬蟲從初始網(wǎng)頁的URL開始, 獲取初始網(wǎng)頁上的URL,在抓取網(wǎng)頁的過程中,不斷從當(dāng)前頁面抽取新的url放入隊(duì)列。直到滿足系統(tǒng)給定的停止條件才停止。

一、爬取南陽理工OJ題目

爬取每道題的題號(hào),難度,標(biāo)題,通過率,通過數(shù)/總提交數(shù)

python代碼

安裝第三方包requests,BeautifulSoup4

pip install requests pip install BeautifulSoup4

import requests from bs4 import BeautifulSoup import csv from tqdm import tqdm# 模擬瀏覽器訪問 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'# 表頭 csvHeaders = ['題號(hào)', '難度', '標(biāo)題', '通過率', '通過數(shù)/總提交數(shù)']# 題目數(shù)據(jù) subjects = []# 爬取題目 print('題目信息爬取中:\n') # tqdm作業(yè):以進(jìn)度條方式顯示爬取進(jìn)度 # 爬取11頁所有題目信息 for pages in tqdm(range(1, 11 + 1)):# get請(qǐng)求第pages頁r = requests.get(f'http://www.51mxd.cn/problemset.php-page={pages}.htm', Headers)# 判斷異常r.raise_for_status()# 設(shè)置編碼r.encoding = 'utf-8'# 創(chuàng)建BeautifulSoup對(duì)象,用于解析該html頁面數(shù)據(jù)soup = BeautifulSoup(r.text, 'lxml')# 獲取所有td標(biāo)簽td = soup.find_all('td')# 存放某一個(gè)題目的所有信息subject = []# 遍歷所有tdfor t in td:if t.string is not None:subject.append(t.string) # 獲取td中的字符串if len(subject) == 5: # 每5個(gè)為一個(gè)題目的信息subjects.append(subject)subject = []# 存放題目 with open('NYOJ_Subjects.csv', 'w', newline='') as file:fileWriter = csv.writer(file)fileWriter.writerow(csvHeaders) # 寫入表頭fileWriter.writerows(subjects) # 寫入數(shù)據(jù)print('\n題目信息爬取完成!!!')

結(jié)果


二、爬取重交新聞

爬取新聞的發(fā)布日期 和 標(biāo)題

python代碼

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_codepage_text = resp.textsoup = 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.stringinfo = [date, title]info_list_page.append(info)except Exception as e:print('爬取' + url + '錯(cuò)誤')print(e)return Noneelse: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('教務(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é)

分析所要獲取的內(nèi)容信息的存放位置后設(shè)置條件進(jìn)行網(wǎng)絡(luò)爬蟲。

鏈接
網(wǎng)絡(luò)爬蟲入門

總結(jié)

以上是生活随笔為你收集整理的爬虫入门练习的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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