修改参数拼接请求链接—解析网页数据——存入数据库
优采云 发布时间: 2021-06-11 18:51修改参数拼接请求链接—解析网页数据——存入数据库
使用java自动爬取新浪微博历史列表-免登录目录编制原理
找到微博内容页的请求链接——》修改参数拼接请求链接——》分析网页数据——》保存到数据库中
工作流程1.找出微博内容页的请求链接
网页端微博加载内容页面时,会请求下方箭头所示的链接。点击之后可以在框中找到整个网页的数据,也就是说我们只需要获取这个链接就可以解析网页数据了。
2.修改参数拼出请求链接
接下来我们需要拼出这个链接。需要修改的参数是domain、domain_op、pre_page、_rnd。
图中可以发现id是由domain和10位数字拼接而成,domain和domain_op是一样的,pre_page指的是当前内容页码,_rnd是时间戳,cookie我们需要运行程序时使用。接下来我们谈谈如何获得它们:
标识:
,
其中2399108715为普通用户id;
其中,1191044977为大V的id;
域:
下图中红框是我们需要的域名,可以直接在用户微博首页查看,右键查看源码查看:
域操作:
同域;
pre_page:
我们可以直接在代码中添加pre_page,但是需要知道用户发送的微博页面总数才能终止循环:
如上图,countPage还是可以从用户首页的源码中获取
_rnd:
可以在程序中设置时间戳作为系统的当前时间,以保证最新的微博可以被抓取出来。
3.分析网页数据
使用jsoup和正则表达式解析网页数据。可以在文末下载代码,看看如何使用。
4.store 在数据库中
在程序中实现,使用mysql。
程序部分 程序结构
service层:
build:构建链接
content:解析网页内容
dao层:
common:持久化数据,存入数据库
model层:
SinaModel:实体类
process:
Main:程序组装
运行程序部分
修改进程目录下Main方法的参数。上面已经获取到id和cookie,可以免费获取高隐代理的ip和端口了。
然后运行 MainTest 程序。
./test
./java
./com
./yk
./process
MainTest
数据库字段说明
sina.sql:
id-表id
userId-用户Id
content-微博正文
contentlink-微博正文中的链接
imglink-微博中的图片链接
transmitnum-转发数
commentnum-评论数
likenum-喜欢数
username-用户名
pulishTime-发布时间
equipment-设备
updateTime-数据存入时间
最后再整理一下思路