文档章节

Java爬虫

JAVA码猿
 JAVA码猿
发布于 2017/05/22 12:10
字数 518
阅读 52
收藏 0

网络爬虫的道德与礼仪

白帽子。在采集那些不想被采集的网站时,其实存在一些非常符合道德和法律规范的理由,有些网站会表明哪些内容可以爬取,哪些不可以爬取。会有个白名单。

要想爬取某些网站的内容信息要做到以下几点:

1. 构造合理的 HTTP 请求头

        requests 模块还是一个设置请求头:

private static Header USER_AGENT = new BasicHeader(HttpHeaders.USER_AGENT, "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20200101 Firefox/56.0");
private static Header UpgradeInsecureRequests = new BasicHeader("Upgrade-Insecure-Requests", "1");
private static Header Referer = new BasicHeader("Referer", "https://read.douban.com/");
private static Header Host = new BasicHeader("Host", "read.douban.com");
private static Header Accept = new BasicHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");
private static Header AcceptEncoding = new BasicHeader("Accept-Encoding", "gzip, deflate, br");
private static Header AcceptLanguage = new BasicHeader("Accept-Language", "zh-CN,zh;q=0.8")

2. 设置 cookie 

写上你自己的cookie
private static Header Cookie = new BasicHeader("Cookie", "写上你自己的cookie");

在采集一些网站时 cookie 是不可或缺的。要在一个网站上持续保持登录状态,需要在多个页面中保存一个 cookie。有些网站不要求在每次登录时都获得一个新 cookie,只要保存一个旧的“已登录”的 cookie 就可以访问。

3. 正常的时间访问路径

应该尽量保证一次加载页面加载且数据请求最小化。如果条件允许,尽量为每个页面访问增加一点儿时间间隔;

多线程处理时让线程随机的睡一会儿。

4.   使用可变的远程 IP 地址

假如有条件的话,使用远程ip地址,本人感觉这有点违反网络安全准则。

 

© 著作权归作者所有

共有 人打赏支持
上一篇: 自学 关于Static
下一篇: 分布式事务
JAVA码猿
粉丝 9
博文 62
码字总数 45401
作品 0
海淀
程序员
私信 提问
Kotlin 喧嚣过后,谈谈 Java 程序员未来的出路

自从谷歌 I/O 2017宣布将支持 Kotlin 作为 Android 开发的 First-Class 语言,各种 Kotlin 能否取代 Java 的文章、争论层出不穷。 作为一名老 Java 程序员,心态是比较复杂的,虽然类似场面见...

两味真火
2017/05/27
5.3K
61
网站爬虫及模拟下单(Golang/Java, Kafka, mysql)

最好是golang,如果JAVA经验很足,也可以考虑JAVA 一、整体功能需求:网站爬虫处理及post 简单爬虫及模拟下单(post):A爬虫模块:用Java程序模拟登录指定的若干个类似网站,每几分钟定时抓取...

greatLIU
2017/02/26
5
10
玩大数据一定用得到的19款 Java 开源 Web 爬虫

网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引...

两味真火
2016/09/23
15.4K
12
如何使用开源java库 开源javaIDE零成本开发商业软件出售?????

开发商业软件需要闭源, 许多开源java库和开源javaIDE都免费, 但是开发者要遵守GPL,CGPL, MPL,等协议, 开发成的软件作品需要开源, 比如,eclipse .netbeans等等,GUI插件swt,windowsbuilder等也...

Mr.lin123
2012/07/16
274
3
为什么Python成了开发AI的主流语言?Java系列、Ruby等编程语言不行吗?

导读 说道开发AI的语言,很多人说,不是Python吗?没错,Python是可以开发AI,但是不知道你们有没有想过,真的就只有Python才可以开发AI吗? 其实,像Java、Ruby也是开发AI很好的选择,但是为...

柯西带你学编程
2018/05/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

MaxCompute安全管理指南-案例篇

通过《MaxCompute安全管理-基础篇》了解到MaxCompute和DataWorks的相关安全模型、两个产品安全方面的关联,以及各种安全操作后,本篇主要给出一些安全管理案例,给安全管理的成员作为参考。 ...

zhaowei121
7分钟前
1
0
B站智能防挡弹幕的一种python实现

某天代码写得老眼昏花,去B站上摸鱼,突然发现奇怪的现象: 哟呵,B站竟然做了视频前景提取,把弹幕藏到画面人物的后面。识别效果还意外地不错呢。 然后又翻了下,发现这是个叫做“智能防挡弹...

crossin
14分钟前
1
0
TortoiseSVN 使用教程

TortoiseSVN 使用教程 TortoiseSVN 是 Subversion 版本控制系统的一个免费开源客户端,可以超越时间的管理文件和目录。 TortoiseSVN 安装 下载地址:https://tortoisesvn.net/downloads.htm...

linjin200
16分钟前
2
0
使用应用程序(Java/Python)访问MaxCompute Lightning进行数据开发

MaxCompute Lightning是MaxCompute产品的交互式查询服务,支持以PostgreSQL协议及语法连接访问Maxcompute项目,让您使用熟悉的工具以标准 SQL查询分析MaxCompute项目中的数据,快速获取查询结...

阿里云云栖社区
18分钟前
1
0
条形码控件TBarCode SDK系列教程十二(网络应用程序问题解答)

TBarCode SDK是一款可以在任意应用程序和打印机下生成和打印所有条码的条码软件组件。TBarCode SDK对于Microsoft Office用户以及软件开发者提供条码打印。使用此款条码软件组件您可以以完美效...

ymy_666666
19分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部