0代码!2分钟上手!!如何利用Web Scraper插件爬取在线课堂讨论区

目录

1、使用Web Scraper爬取讨论区

1.1 安装Web Scraper插件

1.2 使用Web Scraper创建Sitemap

1.3 爬取需要的内容

2、使用MATLAB处理爬取的内容并生成关键词


        大学里,课程往往安排了线上学习内容,有些课程还需要参与在线讨论。为了节省我们宝贵的时间来打游戏写论文,可以直接爬取讨论区的内容并提取关键词,利用关键词直接写作。
        本文将介绍如何使用Web Scraper插件爬取在线课堂的讨论区,并使用MATLAB进行内容筛选和关键词提取。
        软件要求:Chrome或Edge+Web Scraper+MATLAB

以Edge浏览器爬取头歌课堂讨论区为例

1、使用Web Scraper爬取讨论区

1.1 安装Web Scraper插件

        如图,按箭头顺序依次打开扩展按钮、“打开Microsoft Edge加载项”,在打开的界面中搜索Web Scraper,并点击获取按钮。

图片

        安装好后,就可以点击扩展按钮看到Web Scraper啦!

1.2 使用Web Scraper创建Sitemap

        点击这个这个插件,会提示“Press F12 or Ctrl+Shift+I to open Developer Tools”。那么我们通过按F12或者Ctrl+Shift+I打开开发者工具界面。

    

图片

        不出意外,我们可以在开发者工具界面中看到Web Scraper的选项,点击Web Scraper。

图片

        在选项栏中点击Create new sitemap,在展开的选项中点击Create Sitemap。

图片

        之后会出现如上图所示界面,需要我们填写要爬取的网站信息。Sitemap name可以随便填,只是为了方便记忆,这里我设置的名称为“123”。Start URL 1填写要爬取的网站url。如何找到要爬取的网站的url呢?
        以头歌教学平台为例,首先打开要爬取的课程的讨论区,点击第一个(最新的)你想爬取的发言,如图所示

图片

        复制顶端的链接,填到Start URL 1中。注意到复制的网址末尾是一串6位的数字x,这一般表示讨论的序号。再打开最后一个(最晚的)你想爬取的发言,只需要复制链接最后的数字y即可。

图片

        将这个数字按照下图的形式填入Start URL 1中,即[x-y:1]。

图片

    如果直接填入的网址无法运行,在讨论区按F12打开开发者工具,点击选项中的“网络”,之后打开你想爬取的发言,“网络”界面下会出现请求名称,点击该请求,即可看到该网站的URL。

图片

图片

        点击Save Sitemap保存设置。会出现下图所示的界面,点击Add new selector。ID填入container1,Type选择text,Selector选择select。

图片

        点击select后就可以直接用鼠标点击想要爬取的网站元素,这里直接点击发言内容。

图片

        如果网页中有多个相同元素需要勾选,只需要点击前两个相同元素,工具就会自动选中剩余的元素。
        选择完后点击Done selecting,并点击Save selector,这样就创建好了一个Selector。一个Selector只能爬取网页中的一种元素,因此如果要爬取多种元素,需要创建多个Selector。这里我需要爬取发言的标题、内容和作者姓名,因此创建了三个Selector。在创建时记得取消Multiple选项,否则同一页面的三个元素会被放在不同行。

图片

图片

        设置好Selector后,可以点击Selector后面的Element preview预览要爬取的元素。

1.3 爬取需要的内容

        点击Sitemap 123(这里的123是之前设置的Sitemap name),在展开菜单中点击Scrape,在弹出的页面中点击Start Scraping即可开始爬取。

图片

        结束爬取之后,点击Refresh按钮即可看到爬取的内容,点击Export data,选择xlsx格式文件即可导出爬取的内容。

图片

图片

图片

        可以看到已经爬取了标题、内容和作者的信息。不过由于部分课程共同使用一个讨论区URL,因此爬取的内容还包含了其他课程的讨论区。在下一部分我将介绍如何使用MATLAB处理这些数据并提取关键词。

2、使用MATLAB处理爬取的内容并生成关键词

        使用第一部分中同样的方法爬取课程的学生名单,导出数据命名为“tougestudent.xlsx”。利用代码筛选出本课程的学生发言内容。代码如下 

[~,txt]=xlsread('C:\Users\HP\Downloads\tougestudent.xlsx');
[~,content]=xlsread('C:\Users\HP\Downloads\123.xlsx');
[m,n]=size(content);
s1=['"'];
s2=['"'];
a={};
for i =1:m
    s3 = strcat(s1,content{i,5});
    s4 = strcat(s3,s2);
    if ismember(s4,txt)
        a{end+1,1}=content{i,3};
        a{end,2}=content{i,4};
        a{end,3}=content{i,5};
    end
end
filetitle=['C:\Users\HP\desktop\','内容.xlsx'];
xlswrite(filetitle,a);

        运行之后会在桌面生成一个“内容.xlsx”文件,复制其中的讨论内容,粘贴到词云生成网站中即可生成关键词。之后利用关键词和学习内容自己写作或者交给ChatGPT帮忙写都可以啦。

好的,以下是关于使用 Python 的 web scraper 爬取二级网页的简单教程: 1. 导入必要的库 在 Python 中,我们需要使用一些第三方库来实现网页爬取。其中,最为常用的包括 requests 和 BeautifulSoup。前者用于获取网页源代码,后者用于解析 HTML 代码。 ```python import requests from bs4 import BeautifulSoup ``` 2. 获取二级网页 要获取二级网页的内容,我们首先需要获取主网页的链接,然后使用 requests 库获取其源代码,进而找到所有二级网页的链接。我们可以使用 BeautifulSoup 库解析 HTML 代码,并使用 find_all 方法找到所有 a 标签中的 href 属性,即所有链接。 ```python # 获取主网页的链接 url = "https://example.com" response = requests.get(url) soup = BeautifulSoup(response.content, "html.parser") # 获取所有二级网页的链接 links = [] for link in soup.find_all("a"): href = link.get("href") if href.startswith("https://example.com/second-level"): links.append(href) ``` 这里我们假设所有二级链接都以 "https://example.com/second-level" 开头。 3. 爬取二级网页的内容 现在我们已经得到了所有二级网页的链接,接下来就可以依次爬取它们的内容了。和获取主网页的源代码类似,我们可以使用 requests 库获取每个二级网页的源代码,然后使用 BeautifulSoup 库解析 HTML 代码,找到我们需要的内容。 ```python # 爬取所有二级网页的内容 for link in links: response = requests.get(link) soup = BeautifulSoup(response.content, "html.parser") # 这里可以根据需要找到需要的内容 ... ``` 这里需要注意的是,每个二级网页的 HTML 代码可能会有所不同。因此,我们需要根据实际情况找到我们需要的内容。 4. 完整代码 以下是一个完整的示例程序,用于爬取某个网站中以 "https://example.com/second-level" 开头的所有二级网页的标题和正文: ```python import requests from bs4 import BeautifulSoup # 获取主网页的链接 url = "https://example.com" response = requests.get(url) soup = BeautifulSoup(response.content, "html.parser") # 获取所有二级网页的链接 links = [] for link in soup.find_all("a"): href = link.get("href") if href.startswith("https://example.com/second-level"): links.append(href) # 爬取所有二级网页的内容 for link in links: response = requests.get(link) soup = BeautifulSoup(response.content, "html.parser") # 找到标题和正文 title = soup.find("h1").text content = soup.find("div", class_="content").text # 输出结果 print("Title:", title) print("Content:", content) ``` 这段代码可以根据实际需要进行修改。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值