简单上手Web Scraper爬网页

简单上手Web Scraper爬网页

下载安装

Chrome安装插件:https://www.webscraper.io/

开始

例如CSDN某网页:https://blogdev.blog.csdn.net/article/list/
在网页上右键,点击检查,在检查页面右上角三个点设置位置,选择dock side为下方,即可将视图调整到下方。
在这里插入图片描述
若是正确安装了Web Scraper,此时在检查页面最上方一行的最右侧会出现Web Scraper选项,如图
在这里插入图片描述
点击进入,在上方三个选项中先点击第三个create new sitemap,此处sitemap name名字可以自定义,start url网页填写想要爬取的网页,如https://blogdev.blog.csdn.net/article/list/,另外这里要说一点,如果想要爬取某几页,这里的网页填写可以为https://blogdev.blog.csdn.net/article/list/[1-5],这样将会爬取对应页面。

之后点击Add new selector 添加一个selector,这个selector起到总领作用,其具体设置如图
在这里插入图片描述
Id可以自定义,Type要选择Element,之后点击Select去网页上点击对应的块,这里将每篇文章及相关信息总共作为一个块进行划分,如图
在这里插入图片描述

最后一定要确保这个Element类型的Selector勾选了Multiple,点击Save保存。

接下来对于这个块进一步提取信息,在其下创建多个平行Selector分别对于标题、内容、时间、阅读量、评论数等进行选择,注意这里的类型为SelectorText,不能勾选Multiple,Parent selectors选择之前的那个Element类型的Selector,如图
在这里插入图片描述
此时可以点击Sitemap csdn下面的Selector Graph查看,如图
在这里插入图片描述
即一个Element且为Multiple的选择器后续跟着多个Text等类型非Multiple的选择器。
之后点击Sitemap csdn下面的Scrape,参数按照默认的,点击Start scraping开始爬取,爬取后页面暂时不会显示数据需要点击一下refresh data才会显示,之后点击Sitemap csdn下面的Export data选择对应格式文件下载即可,如图即为爬取的结果:
在这里插入图片描述

若仍不知道怎么写这个sitemap可以采用这个,点击Create new sitemap下面的Import Sitemap输入进去即可。

{"_id":"csdn","startUrl":["https://blogdev.blog.csdn.net/article/list/[1-5]"],"selectors":[{"id":"title","parentSelectors":["total"],"type":"SelectorText","selector":"h4 a","multiple":false,"regex":""},{"id":"content","parentSelectors":["total"],"type":"SelectorText","selector":"p.content","multiple":false,"regex":""},{"id":"time","parentSelectors":["total"],"type":"SelectorText","selector":"span.date","multiple":false,"regex":""},{"id":"read","parentSelectors":["total"],"type":"SelectorText","selector":"span.read-num:nth-of-type(2)","multiple":false,"regex":""},{"id":"comments","parentSelectors":["total"],"type":"SelectorText","selector":"span.read-num:nth-of-type(3)","multiple":false,"regex":""},{"id":"total","parentSelectors":["_root"],"type":"SelectorElement","selector":"div.article-item-box","multiple":true}]}

另一个例子,对于搜车网站如图:
在这里插入图片描述

其网址为:https://car.autohome.com.cn/searchcar
同样,创建Sitemap,这里因为每页之间在网址上面没有显示变化,使用一个新的Selector命名为Page,type选择为Pagination,勾选Multiple,如图:
在这里插入图片描述
之后再和之前同样增加一个Element型的Selector,但是注意除了勾选Multiple还要将Parent Selectors选择为page,如图:
在这里插入图片描述
再之后就和之前一样了在cars这个Element型下面新建一些Text型注意不够选Multiple且Parent为cars,如图
在这里插入图片描述
查看selector graph
在这里插入图片描述
之后进行scrape,此时会将每一页都爬取到,时间会长一点,最后export data下载文件,如图
在这里插入图片描述

完成。
爬取车辆的sitemap也放在这里:

{"_id":"car","startUrl":["https://car.autohome.com.cn/searchcar"],"selectors":[{"id":"page","parentSelectors":["_root","page"],"paginationType":"auto","selector":".findcar-page__num a","type":"SelectorPagination"},{"id":"cars","parentSelectors":["page"],"type":"SelectorElement","selector":"div.content","multiple":true},{"id":"name","parentSelectors":["cars"],"type":"SelectorText","selector":"h3","multiple":false,"regex":""},{"id":"price","parentSelectors":["cars"],"type":"SelectorText","selector":"span.price","multiple":false,"regex":""},{"id":"type","parentSelectors":["cars"],"type":"SelectorText","selector":".info dd","multiple":false,"regex":""}]}

Jarvis 230314

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是关于使用 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) ``` 这段代码可以根据实际需要进行修改。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值