苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 7829|回复: 8

[咨询站长] 吊炸天的反扒技术,求解

[复制链接]
发表于 2018-4-8 16:40:20 | 显示全部楼层 |阅读模式
目标:触电新闻(不论APP还是网页,我都不能找到我想要的数据,恕我愚钝)     我抓包有用过浏览器自带的,也有用过fiddler,但是还是没找到(可能是我眼拙,望指教)。
     之前就已经遇到过了,一直没时间回来研究,当初只是粗略的过了一下也没在意,可是我现在回来看,还是不懂。到底还是我技术太low的原因吧,特意来这里请教下苏飞大佬指点指点,不论网页APP都可以。


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2018-4-8 17:56:41 | 显示全部楼层
具体问题具体分析吧,你最好提供个链接我这边也好试试
 楼主| 发表于 2018-4-8 18:44:46 | 显示全部楼层
sufeinet 发表于 2018-4-8 17:56
具体问题具体分析吧,你最好提供个链接我这边也好试试

好,https://www.itouchtv.cn/
就先拿网站来说吧,APP也不方便
发表于 2018-4-8 21:27:37 | 显示全部楼层
请求
https://api.itouchtv.cn:8090/new ... b7d16ca9e94efc2087f

请求头
Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Authorization:  
Cache-Control: no-cache
Connection: keep-alive
Content-Type: application/json
Host: api.itouchtv.cn:8090
Origin: https://www.itouchtv.cn
Pragma: no-cache
Referer: https://www.itouchtv.cn/article/a7047ddaddf15b7d16ca9e94efc2087f
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0
X-ITOUCHTV-APP-VERSION: 0.0.1
X-ITOUCHTV-Ca-Key: 28778826534697375418351580924221
X-ITOUCHTV-Ca-Signature: +0H3eivuwi/rLN1WgxpSvO09v9yNYDeKwO8M4VEY2is=
X-ITOUCHTV-Ca-Timestamp: 1523193674558
X-ITOUCHTV-CLIENT: ITOUCHTV_WEB
X-ITOUCHTV-DEVICE-ID: WEB_925b9fa0-3b2f-11e8-ad9b-e164964bd9cc

返回 文章标题 内容
{"keywords":"涉嫌严重违纪,原副,省政协,战鼓,审","thisNews":{"displayModel":0,"topicCornerMark":null,"bigDataLogInfo4Topic":null,"haveGif":0,"cornerMark":null,"platformType":2,"topicPictureTitleUrl":null,"tagsJsonArray":"[\"时政\",\"垂直领域\",\"党建\",\"常委\",\"监察/反腐\",\"严重违纪\"]","lik。。。。。。。。。等
发表于 2018-4-9 08:47:36 | 显示全部楼层
你这也叫难,
这是最基础的吧兄弟

直接正常请求就行了
[C#] 纯文本查看 复制代码
HttpHelper http = new HttpHelper();  
HttpItem item = new HttpItem()  
{  
    URL = "https://api.itouchtv.cn:8090/newsservice/v9/newscontent?&sid=a7047ddaddf15b7d16ca9e94efc2087f",//URL     必需项  
    Method = "GET",//URL     可选项 默认为Get  
    Timeout = 100000,//连接超时时间     可选项默认为100000  
    ReadWriteTimeout = 30000,//写入Post数据超时时间     可选项默认为30000  
    IsToLower = false,//得到的HTML代码是否转成小写     可选项默认转小写  
    Cookie = "",//字符串Cookie     可选项  
    UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0",//用户的浏览器类型,版本,操作系统     可选项有默认值  
    Accept = "text/html, application/xhtml+xml, */*",//    可选项有默认值  
    ContentType = "text/html",//返回类型    可选项有默认值  
    Referer ="https://www.itouchtv.cn/article/a7047ddaddf15b7d16ca9e94efc2087f",//来源URL     可选项  
    Allowautoredirect = False,//是否根据301跳转     可选项  
    AutoRedirectCookie = False,//是否自动处理Cookie     可选项  
    //CerPath = "d:\123.cer",//证书绝对路径     可选项不需要证书时可以不写这个参数  
    //Connectionlimit = 1024,//最大连接数     可选项 默认为1024  
    Postdata = "",//Post数据     可选项GET时不需要写  
    //ProxyIp = "192.168.1.105:2020",//代理服务器ID     可选项 不需要代理 时可以不设置这三个参数  
    //ProxyPwd = "123456",//代理服务器密码     可选项  
    //ProxyUserName = "administrator",//代理服务器账户名     可选项  
    ResultType = ResultType.String,//返回数据类型,是Byte还是String  
};  
item.Header.Add("X-ITOUCHTV-APP-VERSION", " 0.0.1");//设置请求头信息(Header)  
item.Header.Add("X-ITOUCHTV-Ca-Key", " 28778826534697375418351580924221");//设置请求头信息(Header)  
item.Header.Add("X-ITOUCHTV-Ca-Signature", " +0H3eivuwi/rLN1WgxpSvO09v9yNYDeKwO8M4VEY2is=");//设置请求头信息(Header)  
item.Header.Add("X-ITOUCHTV-Ca-Timestamp", " 1523193674558");//设置请求头信息(Header)  
item.Header.Add("X-ITOUCHTV-CLIENT", " ITOUCHTV_WEB");//设置请求头信息(Header)  
item.Header.Add("X-ITOUCHTV-DEVICE-ID", " WEB_925b9fa0-3b2f-11e8-ad9b-e164964bd9cc");//设置请求头信息(Header)  
HttpResult result = http.GetHtml(item);  
string html = result.Html;  
string cookie = result.Cookie; 

 楼主| 发表于 2018-4-9 09:49:15 | 显示全部楼层
sufeinet 发表于 2018-4-9 08:47
你这也叫难,
这是最基础的吧兄弟

额,我忘记说明了,文章部分我可以拿到,但是首页列表的那些部分我拿不到。APP也是,我抓包的时候列表一直找不到包的。所以我一直很纳闷,是我表达不清楚,我的错
 楼主| 发表于 2018-4-9 09:49:45 | 显示全部楼层
Oreo 发表于 2018-4-8 21:27
请求
https://api.itouchtv.cn:8090/newsservice/v9/newscontent?&sid=a7047ddaddf15b7d16ca9e94efc2087f ...

额,我忘记说明了,文章部分我可以拿到,但是首页列表的那些部分我拿不到。APP也是,我抓包的时候列表一直找不到包的。所以我一直很纳闷,是我表达不清楚,我的错
发表于 2018-4-9 10:00:37 | 显示全部楼层
没什么区别吧,直接把链接换一下就行了。
[C#] 纯文本查看 复制代码
HttpHelper http = new HttpHelper();  
HttpItem item = new HttpItem()  
{  
    URL = "https://api.itouchtv.cn:8090/newsservice/v9/recommendNews?&size=10&channelId=0",//URL     必需项  
    Method = "GET",//URL     可选项 默认为Get  
    Timeout = 100000,//连接超时时间     可选项默认为100000  
    ReadWriteTimeout = 30000,//写入Post数据超时时间     可选项默认为30000  
    IsToLower = false,//得到的HTML代码是否转成小写     可选项默认转小写  
    Cookie = "",//字符串Cookie     可选项  
    UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0",//用户的浏览器类型,版本,操作系统     可选项有默认值  
    Accept = "text/html, application/xhtml+xml, */*",//    可选项有默认值  
    ContentType = "text/html",//返回类型    可选项有默认值  
    Referer ="https://api.itouchtv.cn:8090/newsservice/v9/recommendNews?&size=10&channelId=0",//来源URL     可选项  
    Allowautoredirect = False,//是否根据301跳转     可选项  
    AutoRedirectCookie = False,//是否自动处理Cookie     可选项  
    //CerPath = "d:\123.cer",//证书绝对路径     可选项不需要证书时可以不写这个参数  
    //Connectionlimit = 1024,//最大连接数     可选项 默认为1024  
    Postdata = "",//Post数据     可选项GET时不需要写  
    //ProxyIp = "192.168.1.105:2020",//代理服务器ID     可选项 不需要代理 时可以不设置这三个参数  
    //ProxyPwd = "123456",//代理服务器密码     可选项  
    //ProxyUserName = "administrator",//代理服务器账户名     可选项  
    ResultType = ResultType.String,//返回数据类型,是Byte还是String  
};  
item.Header.Add("X-ITOUCHTV-APP-VERSION", " 0.0.1");//设置请求头信息(Header)  
item.Header.Add("X-ITOUCHTV-Ca-Key", " 28778826534697375418351580924221");//设置请求头信息(Header)  
item.Header.Add("X-ITOUCHTV-Ca-Signature", " groQPhP858LWI8MXPXIgGIYutzCli7qLHkARwDjIQBA=");//设置请求头信息(Header)  
item.Header.Add("X-ITOUCHTV-Ca-Timestamp", " 1523239098968");//设置请求头信息(Header)  
item.Header.Add("X-ITOUCHTV-CLIENT", " ITOUCHTV_WEB");//设置请求头信息(Header)  
item.Header.Add("X-ITOUCHTV-DEVICE-ID", " WEB_618ef100-3b8f-11e8-a34a-cf85dcd9f741");//设置请求头信息(Header)  
HttpResult result = http.GetHtml(item);  
string html = result.Html;  
string cookie = result.Cookie; 

 楼主| 发表于 2018-4-9 11:04:19 | 显示全部楼层
sufeinet 发表于 2018-4-9 10:00
没什么区别吧,直接把链接换一下就行了。[mw_shl_code=csharp,true]HttpHelper http = new HttpHelper();   ...

噢噢,我的HTTP不是2.0的,所以不能采集,我知道原因了
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-26 15:29

© 2014-2021

快速回复 返回顶部 返回列表