网站调用新浪微博内容(3.修改参数拼接请求链接——解析网页数据解析)
优采云 发布时间: 2022-04-12 14:34网站调用新浪微博内容(3.修改参数拼接请求链接——解析网页数据解析)
使用java自动爬取新浪微博历史列表——免登录目录准备工作原理
找到微博内容页面的请求链接-》修改参数拼接请求链接-》解析网页数据-》存入数据库
工作流程1.找出微博内容页面请求链接
网页端微博在加载内容页面时,会请求如下箭头所示的链接。点击后可以发现整个网页的数据都在框内,也就是说我们只需要拿到这个链接就可以解析网页数据了。
2.修改参数拼出请求链接
接下来,我们需要拼出这个链接。需要更改的参数有domain、domain_op、pre_page和_rnd。
图中我们可以发现id是由domain和一个10位数字拼接而成,domain和domain_op是一样的,pre_page指的是当前内容页数,_rnd是时间戳,我们需要用到的cookie运行程序时。接下来我们谈谈如何获取它们:
ID:
,
其中,2399108715为普通用户id;
其中,1191044977是大V的id;
领域:
下图中的红框就是我们需要的域。可以直接在用户微博首页右键查看源码查看:
域操作:
同一个域;
前页:
我们可以直接在代码中循环累加pre_page,但是我们需要知道用户发送的微博页面总数,才能终止循环:
如上图,仍然可以在用户首页的源码中获取countPage
_rnd:
一个时间戳,可以在程序中设置为系统的当前时间,以保证能抓取到最新的微博。
3.解析网页数据
解析网页数据使用jsoup和正则表达式。如何使用可以下载文末代码查看。
4.存入数据库
在程序中实现,使用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-数据存入时间
最后一个想法