java抓取百度搜索结果,一个百度搜索结果内容获取爬虫

1 概述

该项目是一个百度搜索结果获取爬虫。

爬虫从一个文本文件中获取关键字组,查询获得结果后,将结果链接的内容下载存储到文件中。

2 使用

下载jar文件和配置文件。 百度网盘

修改配置文件中的配置,最主要的是要指定关键字文件。

运行run.bat,即可开始爬取。

如果需要删除输出文件夹中的文件,需一并删除success.txt文件。

3 运行流程

读取配置文件settings.properties

根据配置中指定的关键字文件路径,读取关键字

根据已下载文件success.txt,过滤掉已下载的关键字

发百度发送关键字查询

获取和解析百度的查询结果

请求查询结果指向的链接

获取链接指向的页面中的文本内容

将内容写入文件

如果获取的结果数量达到配置的最小值,则将关键字写入已下载文件success.txt。

4 关键问题

4.1 页面乱码问题

直接使用httpclient获取页面会频繁出现乱码问题,即使添加了从页面获取charset的逻辑也不能很好的解决这个问题。

之前使用webmagic感觉很少出现乱码问题,所有我就直接使用了webmagic的下载器。

HttpClientDownloader downloader = new HttpClientDownloader();

Html html = downloader.download(url);

String htmlStr = html.get();

4.2 运行时乱码问题

运行时乱码问题与使用的系统有关,此时运行时需要指定编码格式。

java -jar -Dfile.encoding=utf-8 filename.jar

4.3 百度的查询

其中wd表示的是关键字,需要使用URLEncoder进行处理,pn表示的是页号,pn = (page-1)*10 ,默认页面大小是10。

4.4 百度查询结果的解析

百度的查询结果包括广告链接、指向百度自己产品的链接、其他结果链接,其中广告链接不计入页面大小的计数中。

所有链接的标题均使用h3标签,指向百度自己产品的链接的class为t c-gap-bottom-small,而指向其他结果链接的为t。

使用jsoup根据上面的规则可以很容易获取到结果链接。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值