如何使用爬虫语言爬取网页数据?

爬虫开发

基础概念我们已经讲完,怎么来开发个爬虫呢?举个栗子:

如图,是星斗苍凉、月色照亮的动漫斗罗大陆的播放页面。我们以此为例,开发爬虫来获取页面数据。

Java爬虫

Java爬虫的开发主要使用Jsoup。

引入Jsoup依赖:

<dependency>
  <groupId>org.jsoup</groupId>
  <artifactId>jsoup</artifactId>
  <version>1.11.2</version>
</dependency>

程序开发:

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.IOException;

public class JavaCrawler {
    public static void main(String[] args) throws IOException {
        String url = "https://v.qq.com/detail/m/m441e3rjq9kwpsc.html";
        // 发起请求,获取页面
        Document document = Jsoup.connect(url).get();
        // 解析html,获取数据
        Element body = document.body();
        Element common = body.getElementsByClass("video_title_cn").get(0);
        String name = common.getElementsByAttribute("_stat").text();
        String category = common.getElementsByClass("type").text();
        Elements type_txt = body.getElementsByClass("type_txt");
        String alias = type_txt.get(0).text();
        String area = type_txt.get(1).text();
        String parts = type_txt.get(2).text();
        String date = type_txt.get(3).text();
        String update = type_txt.get(4).text();
        String tag = body.getElementsByClass("tag").text();
        String describe = body.getElementsByClass("_desc_txt_lineHight").text();
        System.out.println(name + "\n" + category + "\n" + alias + "\n" + area + "\n" + parts + "\n" + date + "\n" + update + "\n" + tag + "\n" + describe);

    }
}

Python爬虫

对于Python爬虫的开发,使用的是requests和bs4。

安装模块:

pip install requests bs4

程序开发:

import requests
from bs4 import BeautifulSoup

url = 'https://v.qq.com/detail/m/m441e3rjq9kwpsc.html'
# 发起请求,获取页面
response = requests.get(url)
# 解析html,获取数据
soup = BeautifulSoup(response.text, 'html.parser')
name = soup.select(".video_title_cn a")[0].string
category = soup.select("span.type")[0].string
alias = soup.select("span.type_txt")[0].string
area = soup.select("span.type_txt")[1].string
parts =soup.select("span.type_txt")[2].string
date = soup.select("span.type_txt")[3].string
update = soup.select("span.type_txt")[4].string
tag = soup.select("a.tag")[0].string
describe = soup.select("span._desc_txt_lineHight")[0].string
print(name, category, alias, parts, date, update, tag, describe, sep='\n')

上面两个程序输出相同的结果:

至此,斗罗大陆的爬虫开发工作就完成了。从代码也能看出来,请求部分也就一行,大部分都是解析部分的,这里使用css选择器来完成数据的解析。

我们再来看看请求部分获取的网页内容:

当然,一个完整的爬虫程序除了以上模块,还需要有存储模块,必要的时候还需要代理池模块。其次,对于整个大型网站数据的爬取还需要对网站进行深度/广度遍历来完成,还需要考虑到如果爬虫中断,如何从断点开始继续爬取等方面的设计。这一部分的内容后面会写。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值