【大数据搜索引擎】网络爬虫南华实验报告(2021年版)
實驗7:設計一個網絡爬蟲的算法,動態獲取全國新型冠狀肺炎疫情。
實驗8:提交一篇與實驗作業7相對應的網絡爬蟲實驗報告。
實驗作業7+實驗作業8下載鏈接
https://download.csdn.net/download/qq_37636795/18398399
(作業是博主認真做的,請多多支持!!!資源中有實驗作業7和實驗作業8,實驗作業7提交epidemic.db,epidemic.py,全國疫情最新信息.xls三個文件;實驗作業8單獨提交實驗報告即可)
南華大學
計算機科學與技術學院
實驗報告
( 2020 ~2021 學年度 第二學期 )
課程名稱 搜索引擎
實驗名稱 網絡爬蟲
姓名 學號
專業 軟件工程 班級
地點 八教606 教師 肖建田
目錄
一、實驗目的 3
二、實驗環境 3
三、實驗材料 3
四、實驗設計 3
五.結果和性能分析 3
六.有待解決的問題 3
七.實驗總結 3
一、實驗目的
?了解網絡爬蟲的意義
?掌握網絡爬蟲的基本方法
二、實驗環境
?Windows 10
?Python 3.9
三、實驗材料
?Firefox 瀏覽器
?Sqlite 數據庫
?pycharm開發工具
四、實驗設計
1.數據庫設計
create table epidemic
(
id integer – 主鍵id
primary key autoincrement,
title text, – 標題
newsUrl text, – 新聞主體url
publish_time text, – 發布時間
contents text – 新聞內容
);
2.程序代碼
import re
import sqlite3
import xlwt
from bs4 import BeautifulSoup
from selenium import webdriver
browser = webdriver.Firefox()
定義正則
findnewUrl = re.compile(’<a href="(.?)".>’)
findTitle = re.compile(’<a.>(.?)’)
findPublishTime = re.compile(’(.*?)’)
def getContent(url):
“”"
獲取新聞主體
:param url: url地址
:return:
“”"
browser.get(url)
# 獲取頁面資源
html = browser.page_source
# 解析頁面,獲取文檔樹
doc = BeautifulSoup(html, “lxml”)
contents_Ele = doc.select(“div#xw_box > p”)
contents = “”
def getData(baseUrl):
“”"
爬取網頁數據
:param baseUrl:
:return:
“”"
tempUrl = baseUrl
def init_db(dbPath):
“”"
創建數據庫和表
:param dbPath:
:return:
“”"
sql = ‘’’
create table epidemic(
id integer primary key autoincrement,
title text ,
newsUrl text ,
publish_time text,
contents text
)
‘’’
def saveDataDB(dbPath, dataList):
“”"
保存數據到sqlite中
:param dbPath:
:param dataList:
:return:
“”"
init_db(dbPath)
conn = sqlite3.connect(dbPath)
cursor = conn.cursor()
def saveData(savePath, dataList):
“”"
保存數據到excel
:param savePath:
:param dataList:
:return:
“”"
workbook = xlwt.Workbook(encoding=“utf-8”)
sheet = workbook.add_sheet(‘最新疫情消息’, cell_overwrite_ok=True)
def main():
baseUrl = “http://www.nhc.gov.cn/xcs/yqtb/list_gzbd”
if name == “main”: # 程序執行入口
main()
五.結果和性能分析
1. 控制臺輸出
excel 表的內容
sqlite 數據庫數據
六.有待解決的問題
1. 在對網頁數據的解析方面,不能非常熟悉的使用正則解析,導致某些數據存在冗余的字符,觀感性不好。
2. 對于sqlite 的操作沒有進行封裝,導致了每一次執行代碼就會執行一次數據庫的初始化操作,故在每一次執行前都需要將數據庫刪除,否則會報錯。
3. 在對某些網頁進行爬取時,由于種種原因,無法得到正確的網頁數據,導致了部分數據的丟失。
七.實驗總結
爬蟲是未來it 行業的一大趨勢,爬蟲的作用范圍巨大,帶開發的價值也很大。此實驗是一個小型較簡單的一個爬蟲實驗。其中也遇到了很多問題,例如數據丟失,解析出錯等等。通過不斷的查找資料以及爬蟲相關的技術博客,最終基本上解決了上述問題。在爬取全國疫情信息的實驗中,我學到了如何利用java語言和python語言進行爬取網頁數據,也學會了python操作excel,sqlite操作以及re正則匹配等知識。
總結
以上是生活随笔為你收集整理的【大数据搜索引擎】网络爬虫南华实验报告(2021年版)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: nuxt2中使用less
- 下一篇: 739. Daily Temperatu