网络数据采集实验报告(供参考)

这篇实验报告介绍了如何利用Python的Scrapy框架爬取古诗文网站的数据,包括名句和完整古诗,并分别保存到文本文件和MySQL数据库。报告详细阐述了请求网页、解析网页内容、XPath语言的使用以及数据存储的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实验一:网络数据采集实验

一,实验目的

网络爬虫系统的功能是下载网页数据,为搜索引擎系统或需要网络数据的企业提供数据来源。本章内容介绍了网络爬虫程序的编写方法,主要包括如何请求网页以及如何解析网页。在网页请求环节,需要注意的是,一些网站设置了反爬机制,会导致我们爬取网页失败。在网页解析环节,我们可以灵活运用BeautifulSoup提供的各种方法获取我们需要的数据。同时,为了减少程序开发工作量,可以选择包括Scrapy在内的一些网络爬虫开发框架编写网络网络爬虫程序。

二,实验要求

1.1 采集网页数据保存到文本文件

访问古诗文网站(https://so.gushiwen.org/mingju/),会显示如图3-5所示的页面,里面包含了很多名句,点击某一个名句(比如“山有木兮木有枝,心悦君兮君不知”),就会出现完整的古诗(如图3-6所示)

1.2 采集网页数据保存到MySQL数据库

编写网络爬虫程序,读取网页内容进行解析,并把解析后的数据保存到MySQL数据库中,

1.3 XPath语言

了解Xpath的基本术语及语法

三,实验步骤

1.1 采集网页数据保存到文本文件

下面编写网络爬虫程序,爬取名句页面的内容,保存到一个文本文件中,然后,再爬取每个名句的完整古诗页面,把完整古诗保存到一个文本文件中。可以打开一个浏览器,访问要爬取的网页,然后在浏览器中查看网页源代码,找到诗句内容所在的位置,总结出它们共同的特征,就可以将它们全部提取出来了。

import requests
from bs4 import BeautifulSoup
import time
#函数1:请求网页
def page_request(url,ua):
    response = requests.get(url,headers = ua)
    html = response.content.decode('utf-8')
    return html
  #函数2:解析网页
def page_parse(html):
     soup = BeautifulSoup(html,'html.parser')
     title = soup('title')
     sentence = soup.select('div.left > div.sons > div.cont > a:nth-of-type(1)')
     poet = soup.select('div.left > div.sons > div.cont > a:nth-of-type(2)')
     sentence_list=[]
     href_list=[]
     for i in range(len(sentence)):
        temp = sentence[i].get_text()+ "---"+poet[i].get_text()
        sentence_list.append(temp)
        href = sentence[i].get('href')
        href_list.append("https://so.gushiwen.org"+href)
        return [href_list,sentence_list]
#函数3:写入文本文件
def save_txt(info_list):
    import json
    with open(r'D:\\sentence.txt','a',encoding='utf-8') as txt_file:
      for element in info_list[1]:
        txt_file.write(json.dumps(element,ensure_ascii=False)+'\n\n')
#子网页处理函数:进入并解析子网页/请求子网页
def sub_page_request(info_list):
    subpage_urls = info_list[0]
    ua = {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值