目錄
安裝必備爬蟲環境軟體:
**位址:
切換頁面的時候url**發生變動,因此切換頁面時切換第n頁則為n.html
根據頁面資料顯示可以檢視到只有題號、難度、標題、通過率、存有資料,因此只需要對此四項資料進行爬取
檢視html**:
在每乙個標籤內都是使用巢狀模式,因此可以使用爬蟲進行爬取
匯入相應的包
#匯入包
import requests
from bs4 import beautifulsoup
import csv
from tqdm import tqdm#在電腦終端上顯示進度,使**視覺化進度加快
定義訪問瀏覽器所需的請求頭和寫入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'
# 題目資料
subjects =
# 表頭
csvheaders = ['題號', '難度', '標題', '通過率', '通過數/總提交數']
定義爬取函式,並刪選資訊
for pages in tqdm(range(1, 11 + 1)):
r = requests.get(f'problemset.php-page=.htm', headers)
r.raise_for_status()
r.encoding = 'utf-8'
soup = beautifulsoup(r.text, 'html5lib')
td = soup.find_all('td')#講所有含td的項提取出來
subject =
for t in td:
if t.string is not none:
#利用string方法獲取其中的內容
程式設計客棧 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) # 寫入資料
print('\n題目資訊爬取完成!!!')
結果**位址:
可以看到在html跳轉採用 n-方式 因為為n-.html
爬取資料,日期+新聞題目
檢視網頁**,標籤資訊
資料條數
import requests
from bs4 import beautifulsoup
import csv
# 獲取每頁內容
def get_one_page(url):
headers =
try:
info_list_pa程式設計客棧ge = # 一頁的所有資訊
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') # 找到所有li標籤
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():
# 爬取所有資料
info_list_all =
base_url = ''
for i in range(1, 67):
if i == 1:
url = ''
else:
url = base_url + str(67 - i) + '.htm'
info_list_page = get_one_page(url)
info_list_all += info_list_page
# 存入資料
with open('d:/教務新聞.csv', 'w', newline='', encoding='utf-程式設計客棧8') as file:
filewriter = csv.writer(file)
filewriter.writerow(['日期', '標題']) # 寫入表頭
filewriter.writerows(info_list_all) # 寫入資料
if __name__ == '__main__':
main()
結果:總結:
本次實驗對利用python進行爬蟲進行了學習,並實現了對**資訊的爬取。
python爬蟲 練習
目錄通用爬蟲 聚焦爬蟲 聚焦爬蟲是根據指定的需求抓取網路上指定的資料。例如 獲取豆瓣上電影的名稱和影評,而不是獲取整張頁面中所有的資料值。增量式爬蟲 通過爬蟲程式監測某 資料更新的情況,以便可以爬取到該 更新出的新資料。1 發起請求 使用http庫向目標站點發起請求,即傳送乙個request req...
python簡單爬蟲練習
開始學爬蟲了,記錄一下這兩天的瞎鼓搗 先從最簡單的來,指定乙個url,把整個網頁 抓下來,這裡就拿csdn的主頁實驗 coding utf 8 from urllib import request url html request.urlopen url 注意這裡要以utf 8編碼方式開啟 with...
python 爬蟲 requests 錯誤彙總
原因分析 使用的 有問題 cannot connect to proxy 這是乙個https的不安全請求警告,解決方法就是將該警告忽略掉,忽略該警告就不會再提示了 from urllib3.exceptions import insecurerequestwarning from urllib3 i...