零基础写Java知乎爬虫之准备工作
开篇我们还是和原来一样,讲一讲做爬虫的思路以及需要准备的知识吧,高手们请直接忽略。
首先我们来缕一缕思绪,想想到底要做什么,列个简单的需求。
需求如下:
1.模拟访问知乎官网(http://www.zhihu.com/)
2.下载指定的页面内容,包括:今日最热,本月最热,编辑推荐
3.下载指定分类中的所有问答,比如:投资,编程,挂科
4.下载指定回答者的所有回答
5.最好有个一键点赞的变态功能(这样我就可以一下子给雷伦的所有回答都点赞了我真是太机智了!)
那么需要解决的技术问题简单罗列如下:
1.模拟浏览器访问网页
2.抓取关键数据并保存到本地
3.解决网页浏览中的动态加载问题
4.使用树状结构海量抓取知乎的所有内容
好的,目前就想了这些。
接下来就是准备工作了。
1.确定爬虫语言:由于以前写过一系列爬虫教程(点击这里),百度贴吧,糗事百科,山东大学的绩点查询等都是用python写的,所以这次决定使用Java来写(喂完全没有半毛钱联系好吗)。
2.科普爬虫知识:网络爬虫,即Web Spider,是一个很形象的名字。把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。网络蜘蛛通过网页的链接地址来寻找网页。具体的入门介绍请(点击这里)。
3.准备爬虫环境:Jdk和Eclipse的安装和配置就不多说啦。这里啰嗦一句,一个好用的浏览器对于爬虫来说非常重要,因为首先你需要自己浏览网页知道你需要的东西在哪里,你才能告诉你的爬虫们去哪里怎么爬。个人推荐火狐浏览器,或者谷歌浏览器,它们的右键审查元素和查看源代码的功能都非常强大。
下面我们开始正式的爬虫之旅!~具体讲些什么呢,恩,这是个问题,让我好好想想,别急^_^
相关推荐
-
零基础写Java知乎爬虫之获取知乎编辑推荐内容
知乎是一个真实的网络问答社区,社区氛围友好.理性.认真,连接各行各业的精英.他们分享着彼此的专业知识.经验和见解,为中文互联网源源不断地提供高质量的信息. 首先花个三五分钟设计一个Logo=.=作为一个程序员我一直有一颗做美工的心! 好吧做的有点小凑合,就先凑合着用咯. 接下来呢,我们开始制作知乎的爬虫. 首先,确定第一个目标:编辑推荐. 网页链接:http://www.zhihu.com/explore/recommendations 我们对上次的代码稍作修改,先实现能够获取该页面内容: im
-
JavaWeb开发之模仿知乎首页完整代码
闲来无事,就根据知乎的首页,参考了一些资料模拟写了下,包含了动态的背景,以及登录和注册功能 登录这里使用的是spring security 注册是ajax发送的 具体代码很简单,一看就知道,包含了数据的检查等 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib uri="http://java.sun.com/j
-
java实现爬取知乎用户基本信息
本文实例为大家分享了一个基于JAVA的知乎爬虫,抓取知乎用户基本信息,基于HttpClient 4.5,供大家参考,具体内容如下 详细内容: 抓取90W+用户信息(基本上活跃的用户都在里面) 大致思路: 1.首先模拟登录知乎,登录成功后将Cookie序列化到磁盘,不用以后每次都登录(如果不模拟登录,可以直接从浏览器塞入Cookie也是可以的). 2.创建两个线程池和一个Storage.一个抓取网页线程池,负责执行request请求,并返回网页内容,存到Storage中.另一个是解析网页线程池,负
-
零基础写Java知乎爬虫之抓取知乎答案
前期我们抓取标题是在该链接下: http://www.zhihu.com/explore/recommendations 但是显然这个页面是无法获取答案的. 一个完整问题的页面应该是这样的链接: http://www.zhihu.com/question/22355264 仔细一看,啊哈我们的封装类还需要进一步包装下,至少需要个questionDescription来存储问题描述: import java.util.ArrayList;public class Zhihu { public St
-
零基础写Java知乎爬虫之先拿百度首页练练手
上一集中我们说到需要用Java来制作一个知乎爬虫,那么这一次,我们就来研究一下如何使用代码获取到网页的内容. 首先,没有HTML和CSS和JS和AJAX经验的建议先去W3C(点我点我)小小的了解一下. 说到HTML,这里就涉及到一个GET访问和POST访问的问题. 如果对这个方面缺乏了解可以阅读W3C的这篇:<GET对比POST>. 啊哈,在此不再赘述. 然后咧,接下来我们需要用Java来爬取一个网页的内容. 这时候,我们的百度就要派上用场了. 没错,他不再是那个默默无闻的网速测试器了,他即将
-
零基础写Java知乎爬虫之进阶篇
说到爬虫,使用Java本身自带的URLConnection可以实现一些基本的抓取页面的功能,但是对于一些比较高级的功能,比如重定向的处理,HTML标记的去除,仅仅使用URLConnection还是不够的. 在这里我们可以使用HttpClient这个第三方jar包. 接下来我们使用HttpClient简单的写一个爬去百度的Demo: import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStr
-
零基础写Java知乎爬虫之准备工作
开篇我们还是和原来一样,讲一讲做爬虫的思路以及需要准备的知识吧,高手们请直接忽略. 首先我们来缕一缕思绪,想想到底要做什么,列个简单的需求. 需求如下: 1.模拟访问知乎官网(http://www.zhihu.com/) 2.下载指定的页面内容,包括:今日最热,本月最热,编辑推荐 3.下载指定分类中的所有问答,比如:投资,编程,挂科 4.下载指定回答者的所有回答 5.最好有个一键点赞的变态功能(这样我就可以一下子给雷伦的所有回答都点赞了我真是太机智了!) 那么需要解决的技术问题简单罗列如下: 1
-
零基础写Java知乎爬虫之将抓取的内容存储到本地
说到Java的本地存储,肯定使用IO流进行操作. 首先,我们需要一个创建文件的函数createNewFile: 复制代码 代码如下: public static boolean createNewFile(String filePath) { boolean isSuccess = true; // 如有则将"\\"转为"/",没有则不产生任何变化 String filePathTurn = filePath.r
-
零基础学Java:Java开发工具 Eclipse 安装过程创建第一个Java项目及Eclipse的一些基础使用技巧
一.下载https://www.eclipse.org/downloads/download.php?file=/oomph/epp/2020-06/R/eclipse-inst-win64.exe&mirror_id=1142 二.安装Eclipse 三.开始使用Eclipse,并创建第一个Java项目 src 鼠标右键 -- New --Class 四.一些基础操作 1.字体大小修改(咋一看感觉这字体太小了,看起来不舒服) Window -- Preferences 2.项目运行 3.当一些
-
零基础写python爬虫之使用Scrapy框架编写爬虫
网络爬虫,是在网上进行数据抓取的程序,使用它能够抓取特定网页的HTML数据.虽然我们利用一些库开发一个爬虫程序,但是使用框架可以大大提高效率,缩短开发时间.Scrapy是一个使用Python编写的,轻量级的,简单轻巧,并且使用起来非常的方便.使用Scrapy可以很方便的完成网上数据的采集工作,它为我们完成了大量的工作,而不需要自己费大力气去开发. 首先先要回答一个问题. 问:把网站装进爬虫里,总共分几步? 答案很简单,四步: 新建项目 (Project):新建一个新的爬虫项目 明确目标(Item
-
零基础写python爬虫之神器正则表达式
接下来准备用糗百做一个爬虫的小例子. 但是在这之前,先详细的整理一下Python中的正则表达式的相关内容. 正则表达式在Python爬虫中的作用就像是老师点名时用的花名册一样,是必不可少的神兵利器. 一. 正则表达式基础 1.1.概念介绍 正则表达式是用于处理字符串的强大工具,它并不是Python的一部分. 其他编程语言中也有正则表达式的概念,区别只在于不同的编程语言实现支持的语法数量不同. 它拥有自己独特的语法以及一个独立的处理引擎,在提供了正则表达式的语言里,正则表达式的语法都是一样的. 下
-
零基础写python爬虫之抓取百度贴吧并存储到本地txt文件改进版
百度贴吧的爬虫制作和糗百的爬虫制作原理基本相同,都是通过查看源码扣出关键数据,然后将其存储到本地txt文件. 项目内容: 用Python写的百度贴吧的网络爬虫. 使用方法: 新建一个BugBaidu.py文件,然后将代码复制到里面后,双击运行. 程序功能: 将贴吧中楼主发布的内容打包txt存储到本地. 原理解释: 首先,先浏览一下某一条贴吧,点击只看楼主并点击第二页之后url发生了一点变化,变成了: http://tieba.baidu.com/p/2296712428?see_lz=1&pn=
随机推荐
- vbs/js脚本编程教学(1)
- 详解Java Project项目打包成jar,并生成exe文件
- Java 程序员容易犯的10个SQL错误
- JS简单生成随机数(随机密码)的方法
- php支持断点续传、分块下载的类
- 在Java编程中使用正则表达式
- 详解python中xlrd包的安装与处理Excel表格
- python 多线程实现检测服务器在线情况
- c#将list类型转换成DataTable方法示例
- Android Back键点击两次退出应用详解及实现方法总结
- linux使用crontab实现PHP执行计划定时任务
- python字符串连接方法分析
- 如何正确显示数据库里同时存在的GB码和BIG5码?
- jQuery学习笔记(4)--Jquery中获取table中某列值的具体思路
- jQuery模仿阿里云购买服务器选择购买时间长度的代码
- Javascript操作select方法大全[新增、修改、删除、选中、清空、判断存在等]
- 利用JDBC的PrepareStatement打印真实SQL的方法详解
- Linux用户磁盘配额设置方法
- 一个查看session内容的函数
- 微信小程序使用wx.request请求服务器json数据并渲染到页面操作示例