C#怎么用代码模拟手机去访问手机网站抓取整个网站代码工具数据

转详解抓取网站,模拟登陆,抓取动态网页的原理和实现(Python,C#等)
摘要本文主要介绍了抓取网站,模拟登陆,抓取动态网页相关的逻辑,原理和如何实现。主要包括:
抓取网页,模拟登陆等背后的通用的逻辑和原理
以提取songtaste网页中标题为例,详解如何抓取网站并提取网页内容
以模拟登陆百度为例,详解如何模拟登陆网站
以抓取网易博客帖子中的最近读者信息为例,详解如何抓取动态网页中的内容
详解了在模拟登陆和抓取动态网页过程中,如何用对应的网页分析工具,如IE9的F12,Chrome的Ctrl+Shift+J,Firefox的Firebug,去分析出对应的逻辑
针对抓取网站,模拟登陆,抓取动态网页,全部给出了完整的可用的,多种语言的示例代码:Python,C#,Java,Go等
本文提供多种格式供:
下载(7zip压缩包)
HTML版本的在线地址为:有任何意见,建议,提交bug等,都欢迎去讨论组发帖讨论:
把之前教程的地址整理过来
添加新帖子的链接:模拟登陆百度的java版,go语言版
版权 & 2013 Crifan,&
本文章遵从:
1.&本文目的
本文目的在于,如何从无到有的,了解抓取网站,模拟登陆,抓取动态网页方面的逻辑和具体实现。
第&1&章&网站抓取,模拟登陆,抓取动态网页的通用逻辑
第&2&章&如何抓取静态网页并提取特定内容
第&3&章&如何模拟登陆网站
下面,给出足够多的例子:
3.1.&(多种语言实现)模拟登陆百度
先去用工具分析逻辑:再去用代码实现,此处,目前已经实现了:
Python版&&
Go语言版&&
3.2.&(多种语言实现)模拟登陆gogole
&另外,也弄了个,模拟登陆google:&
第&4&章&如何抓取动态网页并提取特定内容
先去看看:
搞懂,抓取动态网页的逻辑。
再去看下面的例子:
4.1.&抓取动态网页示例:网易163博客的心情随笔FeelingCard
第&5&章&抓取静态或动态网页和模拟登陆的注意事项和总结
> 本站内容系网友提交或本网编辑转载,其目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请及时与本网联系,我们将在第一时间删除内容!
&meta http-equiv=&Content-Type& content=&text/ charset=UTF-8&&
&title&详解抓取网站,模拟登陆,抓取动态网页的原理和实现(Python,C#等)&lt ...
下面这个日志网站(/)的类别&Category Archives: Crawl_emulatelogin&:
/category/work_and_job/web/crawl_emulatelogin/
里有很 ...
这两天有基友要php中curl抓取教务处成绩的源码,用于微信公众平台的开发.下面笔者只好忍痛割爱了.php中CURL技术模拟登陆抓取数据实战,抓取沈阳工学院教务处学生成绩. 首先,教务处登录需要验证码.我们寻找验证码的链接地址http://218.61.108.163/ACTIONVALIDATERANDOMPICTURE.APPPROCESS,来进行数据的 ...
&系统集成项目管理工程师软考辅导--3年真题详解与全真模拟& 主要创新点.关注点 新增2014年5月.11月两份真题试卷的360°透彻解析: 更新2013年5月.11月真题试卷的解析: 紧扣考纲,基于历年真题分析,心血创作了一套全新的全真模拟卷: 与时俱进创作了部分前沿信息技术(例如,4G技术.云数据中心.大数据技术等).法规标准的新题,并更新至 ...
&信息系统项目管理师软考辅导--3年真题详解与全真模拟&主要创新点.关注点 新增2014年5月.11月两份真题试卷的360°透彻解析: 更新2013年5月.11月真题试卷的解析: 紧扣考纲,基于历年真题分析,心血创作了一套全新的全真模拟卷: 与时俱进创作了部分前沿信息技术(例如,4G技术.云数据中心.大数据技术等).法规标准的新题,并更新至各份闯 ...
&质量第一,开拓创新&是编写这套考试辅导用书的指导思想:出版精品是我们坚持不懈的奋斗目标! &网络工程师软考辅导--3年真题详解与全真模拟&主要创新点.关注点 新增2014年5月.11月两份真题试卷的360°透彻解析: 更新2013年5月.11月真题试卷的解析: 紧扣考纲,基于历年真题分析,心血创作了一套全新的全真模拟卷: 与 ...
做SEO的小伙伴对百度搜索引擎和蜘蛛是情有独钟啊,因为目前百度是国内PC端和移动端搜索引擎的老大,seo的小伙伴当然是希望百度蜘蛛能够更多的抓取网站,只有抓取的页面多了,才有可能获得更好的收录.排名和流量.百度蜘蛛:Baiduspider.1818平台下面就先和各位分享一下百度蜘蛛是如何从最原始的策略制定到抓取的. 一.百度蜘蛛抓取规则1.对网站抓取的友好性 ...
本文介绍将会介绍 QT 源码之 QLibrary 跨平台调用动态库实现,在内容中,将会讨论Qt是如何封装这两种不同的调用动态库的方法.先看内容. 详解 QT 源码之 QLibrary 跨平台调用动态库实现是本文要讲解的内容,在不同同台上动态库的使用,先来看内容. 1.win下动态库调用有关的函数包括: (1)LoadLibrary,装载动态库. (2)Get ...温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
&4.盛大的登录机制还是属于比较复杂的,中间涉及到好几个服务器,经过分析得知(这个就是一个比较漫长的过程了,具体网站具体分析,这个分析过程我就不写了)纵横天下的登录机制为:1)IE请求页面,该页面给IE一个SessionID,比如Set-Cookie: ASP.NET_SessionId=avcbse55l5e03suqi4dx3555; path=/2)IE同时在该HTTP的正文中得到一个ticket,这个ticket将在登录中有用,当然其他网站肯定不是这样做的,这里分析的是纵横天下的。location.href&&& =&&&&; 这里lt参数就是我说的ticket了。3)将获得的lt、用户名、密码还有一些其他的无关紧要的参数都Post到&中,具体抓到的Post的数据如:warn=false&_eventId=submit&idtype=0&gamearea=0&gametype=0&challenge=3623&lt=sd-cf-4c9c-b249-07fe8-05-06_01%3A25%3A41.484&username=studyzy&password=1234&ekey=&challenge=3623,这里我们就只关心lt,username,password这三个参数。4)获取一个只有登录後才能访问的页面,测试是否登录成功。5.好,整个登录机制我们已经分析完了,接下来就是考虑代码的实现了。在面向HTTP协议上,C#中有WebRequest、WebResponse、HttpWebRequest和HttpWebResponse等类。我们主要就基于这些类进行操作,当然完全基于Socket编程也可以,但是这里就没有这个必要了。在不设置Cookie、PostData的情况下要获得一个页面的HTML的方法很简单:public&static&string&GetHtml(string&URL)&&&&&&&&{&&&&&&&&&&&&WebRequest&&&&&&&&&&&&&wrt&=&WebRequest.Create(URL);&&&&&&&&&&&&wrt.Credentials&=&CredentialCache.DefaultC&&&&&&&&&&&&WebResponse&&&&&&&&&&&&&wrp&=&wrt.GetResponse();&&&&&&&&&&&&return&new&StreamReader(wrp.GetResponseStream(),&Encoding.Default).ReadToEnd();&&&&&&&&}&&当需要获得服务器返回的Cookie的话,可以通过wrp.Headers.Get("Set-Cookie")方法来获取。如果需要将Cookie加入到请求另外还Post数据的话其实也很简单,只需要将httpWebRequest对象中设置ContentLength 和Request的Stream就可以了。httpWebRequest.ContentLength&=&byteRequest.LStream&stream&=&httpWebRequest.GetRequestStream();stream.Write(byteRequest,&0,&byteRequest.Length);stream.Close();&&代码我就不都贴出了,我做了一个Demo在附件中,大家有兴趣研究的可以看一下。&代码中实现了盛大账号的登录,其实纵横天下的登录还没有完成,接下来还有选择具体服务器,将ticket转到具体服务器上再进行验证,原理也是一样的,我这里就不再累述了。成功登录后,接下来我们只需要每次发送请求是跟上该Cookie,服务器就认为是登录的用户在操作了,接下来就可以随便灌水、Download资源了,具体要做什么就大家自己弄了,只需要在IE中操作一篇,抓包分析出来,用C#实现同样的发包就OK!【出自,转载请注明作者出处】
阅读(1918)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'C#通过抓包模拟网站用户登录——发帖机器人',
blogAbstract:'我们在写灌水机器人、抓资源机器人和Web网游辅助工具的时候第一步要实现的就是用户登录。那么怎么用C#来模拟一个用户的登录拉?要实现用户的登录,那么首先就必须要了解一般网站中是怎么判断用户是否登录的。HTTP协议是一个无连接的协议,也就是说这次对话的内容和状态与上次的无关,为了实现和用户的持久交互,网站与浏览器之前在刚建立会话时将在服务器内存中建立一个Session,该Session标识了该用户(浏览器),每一个Session都有一个唯一的ID,第一次建立会话时服务器将生成的这个ID传给浏览器,浏览器在接下来的浏览中每一个发向服务器的请求中都将包含该SessionID,从而标识了自己的身份。',
blogTag:'数据抓包分析,模拟登录',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:8,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:true,
hostIntro:'',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}

我要回帖

更多关于 抓取网站后台代码 的文章

 

随机推荐