crawl4j介绍

crawl4j使用介绍

crawler4j是Java的开源Web爬网程序。

一、配置介绍

crawler4j可以通过简单的配置即可完成一个爬虫、

crawler4j主要通过 CrawlConfig 进行配置 ,详细参数:

属性是否必填类型默认值建议值含义
crawlStorageFolder
String
null 爬虫实例使用到的文件夹,文件夹里面会存储一些爬取到的数据、任务之类的
resumableCrawling
boolean
false
根据实际需求选择如果该属性设置为ture,当重启爬虫时,爬虫会根据crawlStorageFolder文件夹存储的任务数据,继续上一次的爬网,当改属性为false时,重启爬虫,爬虫会清空crawlStorageFolder文件夹内容,重新写入
dbLockTimeout
long
500
 crawler4j任务数据存储底层是用到sleepycat DB,该属性是配置请求sleepycat DB时锁定时长单位为毫秒
maxDepthOfCrawling
int -1 

最大爬虫深度、当小于0是没有限制

如 a页面中有子页面b,则a的深度为0,b的深度为1

maxPagesToFetch
int-1 最大的调度页面数,小于0时无限制,当maxDepthOfCrawling<0时可以根据该属性暂停爬虫任务
userAgentString
String
crawler4j (https://github.com/yasserg/crawler4j/)
 
user-agent名称
defaultHeaders
set  默认请求头
politenessDelay
int200 发送请求时间间隔,如果网络给力、且需要提高性能,该值可适当降低
includeHttpsPages
boolean
true
 是否爬取https相关请求
includeBinaryContentInCrawling
boolean
false
 是否爬虫二进制数据如图片、视频。。。。,如果为true则爬取
processBinaryContentInCrawling
booleanfalse 是否使用tika处理二进制数据,tika是crawl4j的解析工具,如果为ture是根据tika去解析url,否则直接用正则去匹配,不过最新的版本用的是领英的url-detector
maxConnectionsPerHost
int100 每台主机的连接数,该值也是需要根据并发数计算的,为提高性能也可以适当的提高
maxTotalConnections
int100 总网站http的连接数
socketTimeout
int
20000
 httpclient 的requestCOnfig配置scoket超时时间,性能优化可以适当调低
connectionTimeout
int
30000
 httpclient 的requestCOnfig配置链接超时时间,性能优化可以适当调低
maxOutgoingLinksToFollow
int
5000
 处理一个页面最大的出站连接数
maxDownloadSize
int
1048576
 下载页面响应最大大小单位B
followRedirects
booleantrue 是否请求重定向的页面,如果为ture则访问
onlineTldListUpdate
booleantrue 是否应该在每次运行时自动更新TLD列表
shutdownOnEmptyQueue
booleanture 任务完成后是否关闭系统资源,包括一些线程
threadMonitoringDelaySeconds
int10 监控线程每多久执行一次,单位s,监控线程主要监控任务的状态,以便关闭资源
threadShutdownDelaySeconds
int10 线程关闭前等待多久,再次确认才进行关闭,单位s
cleanupDelaySeconds
int10 线程关闭后,等待多久关闭资源(连接池、sleepycat DB)单位s
      

 这次先整理到这吧,后期会把crawler4j相关的性能、以及源码注意部分、以及其它内容加上去。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是使用 Scrapy 爬取京东商品信息的基本步骤: 1. 创建 Scrapy 项目 在命令行中输入以下命令: ``` scrapy startproject jingdong ``` 这将在当前目录下创建一个名为 `jingdong` 的 Scrapy 项目。 2. 创建 Spider 在 Scrapy 项目中,Spider 用于分析和提取网页数据。在 `jingdong/spiders` 目录下创建一个名为 `jd_spider.py` 的文件,并输入以下代码: ```python import scrapy class JDSpider(scrapy.Spider): name = "jd" allowed_domains = ["jd.com"] start_urls = ["https://list.jd.com/list.html?cat=737,794,798"] def parse(self, response): for product in response.css("li.gl-item"): yield { "name": product.css("div.p-name em::text").get(), "price": product.css("div.p-price strong i::text").get(), "link": product.css("div.p-name a::attr(href)").get() } ``` 在上面的代码中,我们定义了一个名为 `JDSpider` 的 Spider,它从京东的商品列表页面开始爬取。在 `parse` 方法中,我们使用 CSS 选择器来获取每个商品的名称、价格和链接,并使用 `yield` 返回一个 Python 字典,其中包含这些数据。 3. 运行 Spider 在命令行中输入以下命令来运行 Spider: ``` scrapy crawl jd -o products.json ``` 这将运行名为 `jd` 的 Spider,并将结果保存到名为 `products.json` 的文件中。 现在,您可以在项目目录下找到 `products.json` 文件,其中包含从京东网站爬取的商品信息。 以上就是使用 Scrapy 爬取京东商品信息的基本步骤。当然,您还可以根据需要进行更多的配置和优化。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值