c httpclient抓取网页(服务器判定你是ie还是chrome还是firefox?分析的请求地址)

优采云 发布时间: 2021-12-28 00:20

  c httpclient抓取网页(服务器判定你是ie还是chrome还是firefox?分析的请求地址)

  HttpClient 是 Apache Jakarta Common 的一个子项目,可用于提供支持 HTTP 协议的高效、最新且功能丰富的客户端编程工具包,它支持 HTTP 协议的最新版本和推荐。

  3.上一页

  首先模拟手机浏览器的UA。就是让我们打开的页面回到移动端的页面效果,那我们该怎么做呢?其实服务器是根据请求头中的UA来判断你是chrome还是firefox的,所以我们来找一个手机浏览器的UA。.

  我们可以直接f12或者直接在浏览器中模拟移动端,然后查看请求参数:

  User-Agent:Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.76 Mobile Safari/537.36

  正常没问题:

  

  那么我们如何将这句话反映到程序中呢?

  简单,我们拿到get对象后直接设置:

   httpGet.setHeader("User-Agent", "Mozilla/5.0

(Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36

(KHTML, like Gecko) Chrome/46.0.2490.76 Mobile Safari/537.36");

  就可以了,然后我们就可以使用jsoup来获取我们想要的元素了。jsoup 的语法与 jq 相同。

  我们直接面对页面,右键我们想要的元素,选中review元素,然后用jq选择器选中它。

  你可以参考jQuery选择器

  4.获得关注者

  直接获取我们之前分析的请求地址

  https://www.zhihu.com/api/v4/members/Sweets07/followers?per_page=10&

include=data%5B%2A%5D.employments%2Ccover_url%2Callow_message%2Canswer_coun

t%2Carticles_count%2Cfavorite_count%2Cfollower_count%2Cgender%2Cis_followe

d%2Cmessage_thread_token%2Cis_following%2Cbadge%5B%3F%28type%3Dbest_answerer

%29%5D.topics&limit=10&offset=30

  但是记得替换用户名,在请求头中添加cookie zc_0的最后一段

  那么返回的请求数据就是json

  {

"paging": {

"is_end": false,

"next": "https://www.zhihu.com/api/v4/members/Sweets07/followers?per_page=10&include=data%5B%2A%5D.answer_count%2Carticles_count%2Cfollower_count%2Cis_followed%2Cis_following%2Cbadge%5B%3F%28type%3Dbest_answerer%29%5D.topics&limit=10&offset=20",

"previous": "https://www.zhihu.com/api/v4/members/Sweets07/followers?per_page=10&include=data%5B%2A%5D.answer_count%2Carticles_count%2Cfollower_count%2Cis_followed%2Cis_following%2Cbadge%5B%3F%28type%3Dbest_answerer%29%5D.topics&limit=10&offset=0",

"is_start": false,

"totals": 398

},

"data": [

{

"is_followed": true,

"avatar_url_template": "https://pic1.zhimg.com/da8e974dc_{size}.jpg",

"name": "陈晓峰",

"url": "",

"type": "people",

"user_type": "people",

"answer_count": 0,

"url_token": "chen-xiao-feng-84",

"headline": "阿里巴巴,分布式数据库,",

"avatar_url": "https://pic1.zhimg.com/da8e974dc_is.jpg",

"is_following": false,

"is_org": false,

"follower_count": 14,

"badge": [],

"id": "ff02ea0544901a9ddfcb7ba60c73b673",

"articles_count": 0

}

]

}

  这个数据包括下一个请求地址,最后一个请求地址,时间是开始,时间是结束,总共有多少粉丝,以及关注者的基本信息,

  所以我们可以在一段时间内得到所有的粉丝:

  过程:

  第一次获取数据,获取is_end字段判断is_end是否为真,根据is_end判断是否继续循环。如果循环,更新 is_end 并更新下一个连接请求

  一套后,你可以得到一个用户的所有粉丝。

  我爱Java(QQ群):170936712(点击加入)

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线