精华内容
下载资源
问答
  • 在用wget抓取数据的时候,有的时候需要用户登录才能进行。这种情况下就需要时用cookie.先看下面的代码:wget --load-cookies cookies.txt --save-cookies cookies.txt --keep-session-cookies -O output/login....

     

     Niushop3.0电商系统,性价比之王!开牛店的第一选择!


    在用wget抓取数据的时候,有的时候需要用户登录才能进行。这种情况下就需要时用cookie.
    先看下面的代码:
     
    wget --load-cookies cookies.txt --save-cookies cookies.txt --keep-session-cookies -O output/login.html --post-data "username=NNNNNNNNNNN&password=MMMMMMMMMMM" http://www.xxxxxxxxxxxxxx.org/login
      
      wget --load-cookies cookies.txt --save-cookies cookies.txt --keep-session-cookies -O output/directory-list.html "http://www.xxxxxxxxxxxxxxx.org/list?category=resturants&page=1"
      
    第一个操作,就是先获得一个cookie,用来登陆并保存此session,然后在后面的抓数据的过程中使用此session和cookie.
    注意:
    http://www.xxxxxxxxxxxxxx.org/login要换成对应的登陆页面的url
    --post-data "username=NNNNNNNNNNN&password=MMMMMMMMMMM"  post数据里面的参数要根据登陆页面里面对应的参数设定。

    第二个操作,就是用上面的cookie去验证用户,并取得一个有效的连接,进而去取得数据。
    --load-cookies 就是载入你上一个操作所取得的cookie.

    在抓取数据的时候,我自己用了一个脚本,如下,以供参考:

    get --load-cookies cookies.txt --save-cookies cookies.txt --keep-session-cookies -O login.html --post-data "username=xxxxxxxxxx&password=11111111111111111" http://www.mmmmmmmmmmmmmmmmmm.mmmmmmmmm/login
      
      
      
      for i in {1..89}
      do
          for j in {1..20}
          do
              echo i=$i -- j=$j
      
      echo "wget --load-cookies cookies.txt --save-cookies cookies.txt --keep-session-cookies  -O $i-$j.html 'http://www.ccccccccccccccc.ccccccccccc/directory/resturant/list?keyword=&class=$i&page=$j'"
      
      wget --no-dns-cache --no-cache --load-cookies cookies.txt --save-cookies cookies.txt --keep-session-cookies  -O $i-$j.html "http://www.qqqqqqqqq.xxxxxxxxx/directory/bar/list?keyword=&class=$i&page=$j"
      
          done

     

     Niushop3.0电商系统,性价比之王!开牛店的第一选择!

    转载于:https://www.cnblogs.com/niuniuniuniu/p/10650950.html

    展开全文
  • 地址:http://wl.jdwl.com/main.html ![破解图片滑动验证](https://img-ask.csdn.net/upload/201809/01/1535790647_161187.png) 能不能破解啊?
  • 主要介绍了PHP使用Curl实现模拟登录及抓取数据功能,结合实例形式分析了php使用curl进行登陆、验证、cookie操作与数据抓取等相关实现技巧,需要的朋友可以参考下
  • 抓取网页数据的思路有好多种,一般有:直接代码请求http、模拟浏览器请求数据(通常需要登录验证)、控制浏览器实现数据抓取等。这篇不考虑复杂情况,放一个读取简单网页数据的小例子:目标数据将ittf网站上这个页面上...

    抓取网页数据的思路有好多种,一般有:直接代码请求http、模拟浏览器请求数据(通常需要登录验证)、控制浏览器实现数据抓取等。这篇不考虑复杂情况,放一个读取简单网页数据的小例子:

    目标数据

    将ittf网站上这个页面上所有这些选手的超链接保存下来。

    cc2013df5fd28306c6d0dfb73bfaa455.png

    数据请求

    真的很喜欢符合人类思维的库,比如requests,如果是要直接拿网页文本,一句话搞定:

    doc = requests.get(url).text

    解析html获得数据

    以beautifulsoup为例,包含获取标签、链接,以及根据html层次结构遍历等方法。参考见这里。下面这个片段,从ittf网站上获取指定页面上指定位置的链接。

    url = 'http://www.ittf.com/ittf_ranking/WR_Table_3_A2.asp?Age_category_1=&Age_category_2=&Age_category_3=&Age_category_4=&Age_category_5=&Category=100W&Cont=&Country=&Gender=W&Month1=4&Year1=2015&s_Player_Name=&Formv_WR_Table_3_Page='+str(page)

    doc = requests.get(url).text

    soup = BeautifulSoup(doc)

    atags = soup.find_all('a')

    rank_link_pre = 'http://www.ittf.com/ittf_ranking/'

    mlfile = open(linkfile,'a')

    for atag in atags:

    #print atag

    if atag!=None and atag.get('href') != None:

    if "WR_Table_3_A2_Details.asp" in atag['href']:

    link = rank_link_pre + atag['href']

    links.append(link)

    mlfile.write(link+'\n')

    print 'fetch link: '+link

    mlfile.close()

    展开全文
  • 抓取网页数据的思路有好多种,一般有:直接代码请求http、模拟浏览器请求数据(通常需要登录验证)、控制浏览器实现数据抓取等。这篇不考虑复杂情况,放一个读取简单网页数据的小例子:目标数据将ittf网站上这个页面上...

    抓取网页数据的思路有好多种,一般有:直接代码请求http、模拟浏览器请求数据(通常需要登录验证)、控制浏览器实现数据抓取等。这篇不考虑复杂情况,放一个读取简单网页数据的小例子:

    目标数据

    将ittf网站上这个页面上所有这些选手的超链接保存下来。

    cc2013df5fd28306c6d0dfb73bfaa455.png

    数据请求

    真的很喜欢符合人类思维的库,比如requests,如果是要直接拿网页文本,一句话搞定:

    doc = requests.get(url).text

    解析html获得数据

    以beautifulsoup为例,包含获取标签、链接,以及根据html层次结构遍历等方法。参考见这里。下面这个片段,从ittf网站上获取指定页面上指定位置的链接。

    url = 'http://www.ittf.com/ittf_ranking/WR_Table_3_A2.asp?Age_category_1=&Age_category_2=&Age_category_3=&Age_category_4=&Age_category_5=&Category=100W&Cont=&Country=&Gender=W&Month1=4&Year1=2015&s_Player_Name=&Formv_WR_Table_3_Page='+str(page)

    doc = requests.get(url).text

    soup = BeautifulSoup(doc)

    atags = soup.find_all('a')

    rank_link_pre = 'http://www.ittf.com/ittf_ranking/'

    mlfile = open(linkfile,'a')

    for atag in atags:

    #print atag

    if atag!=None and atag.get('href') != None:

    if "WR_Table_3_A2_Details.asp" in atag['href']:

    link = rank_link_pre + atag['href']

    links.append(link)

    mlfile.write(link+'\n')

    print 'fetch link: '+link

    mlfile.close()

    展开全文
  • 在工作当中,经常会遇到需要从另一个系统的网页中抓取... 针对爬取的网页,主要分为静态页面、需要登录验证才能浏览的动态页面以及需要JavaScript渲染才能获取数据的复杂页面。 针对数据获取的方式,其一是:通过...

        在工作当中,经常会遇到需要从另一个系统的网页中抓取数据的需求,即需要编写和使用网页爬虫模拟浏览器向网络服务器发送请求以便将网络资源从网络流中读取出来,保存到本地,并对这些信息做些简单提取,将我们要的信息分离提取出来。

        针对爬取的网页,主要分为静态页面、需要登录验证才能浏览的动态页面以及需要JavaScript渲染才能获取数据的复杂页面。

        针对数据获取的方式,其一是:通过HTTP协议的Get方法去请求信息,对应网站不涉及post表单。其二是通过POST请求获取数据

    数据抓取的方案:

    1、Urllib标准库:Urllib是Python自带的标准库,无需安装

    2、requests库: requests是python的第三方库,可以发送网络请求数据并获取服务器返回的源码。使用requests库获取到html文件,然后利用正则等字符串解析手段或者BeautifulSoup库(第三方库)完成信息提取。

      有些网络服务器反感爬虫,会对请求头做个简单判别,直接拒绝那些明显是由自动化程序发起的请求。就例如图2中的代码,python使用的默认请求头User-Agent值为Python-urllib/3.4,而浏览器访问时User-Agent值为:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36(KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.3。为了避免自动化程序被拒绝,在请求时可以修改请求头,让自动化程序更像一个浏览器。

        在网页爬取时,可能会遇到公司网络不允许访问外网的情况,这时就需要设置代理IP: requests.get("https://guanjia.qq.com", proxies={“http”:“127.0.0.1:8087”})

       BeautifulSoup库是HTML/XML解析器,它可以很好的处理不规范标记并生成剖析树,通常用来分析爬虫抓取的web文档,可以大大节省编程时间。

       需要注意cookie的追踪。一旦网站验证了你的登录权证,它将会将登陆权证保存在浏览器的cookie中,若是我们一直自己处理cookie的追踪,在面对复杂网址时将会比较麻烦,降低开发效率。我们可以使用Session对象解决这个问题,就如上述截图代码中。Session会持续跟踪会话信息,包括cookie,header。可以调用session.cookie.get_dict()查看当前session cookie值。

       在表单中存在“隐含”字段,该字段是对浏览器可见,但是对用户不可见。一般而言,“隐含”字段是在每次Get请求时生成,每次打开同个网址,同个“隐含”值不一样。这个处理有一定的反爬虫效果。至于“隐含”字段是否作为post参数,可以手动在浏览器下完成表单请求,观察请求参数是否包含某个“隐含”参数。如下图:网址包含“隐含”字段,并在post时带上。

      基本认证是一种用来允许Web浏览器后者其他客户端程序在请求时,提供用户名和口令形式的身份凭证的一种登录验证方式。把“用户名+冒号+密码”用BASE64算法加密后的字符串放到httprequest中的headerAuthorization中发送给服务端。在发明cookie之前,HTTP基本认证是处理网站登录最常用的方法,目前一些安全性比较高网址还在使用这种方式。

    3、抓取类型复杂的网页的数据:“python+ selenium + 第三方浏览器“处理cookie、javascript等页面爬取情况。

    静态页面和含有post表单网站的爬虫方式,相对比较简单。而实际在做网页爬虫工作时页面情况更加多样复杂。如:
      一、网页中包含javascript代码,需要经过渲染处理才能获取原始数据;   

      二、网站具有一定反爬虫能力,有些cookie是需要客户端脚本执行JS后才会产生,而requests模块又不能执行JS代码,如果我们按照第三部分操作来post表单,会发现部分少了部分cookie,导致请求被拒绝。在当前知名网站反爬虫工作做的比较好,很难找到简单post表单就可以。

    “python+ selenium + 第三方浏览器“这个方案就能解决绝大多数的场景

    Python有个第三方库PyV8,该库可以执行JS代码,但执行效率低,此外微软官网还涉及JS加密的Cookie,若是采用requests + Pyv8 + BeautifulSoup 三种库组合方式处理,那代码会显得臃肿杂乱。

    那是否有其他更为简洁易懂的方式呢?

    有, selenium。

    (2)“Selenium+ 第三方浏览器”,可以让浏览器自动加载页面,由浏览器执行JS从而获取到需要的数据,这样我们的python代码就无需实现浏览器客户端的功能。可以说,“Selenium + 第三方浏览器”组成了一个强大的网络爬虫,可以处理cookie、javascript等页面爬取情况。第三方浏览器分有界面(chrome)和无界面(PhantomJS),有界面浏览器就是可以直接看到浏览器被打开以及跳转的过程。无界面浏览器会将网站加载到内存并执行页面上的JS,不会有图形界面。可以自己喜好或者需求选择第三方浏览器。

    3、解决方案:采用“selenium+ chrome”方式完成需求。

    (1)下载安装python的selenium库;

    (2)下载chromeDriver到本地;

    (3)利用webdriver api完成对页面的操作。下面给出一个示例,完成微软官网的登录。示例代码在初始化webdriver时设置了网络代理、指定了浏览器下载文件保存路径、让chrome提示下载进度等信息。

    在实际工作中使用频率最多还是“静态页面”、“javascript动态页面”这两种。当然,若是页面包含验证码,那就需要结合图像识别工具做些事情了,这种情况相对也比较难处理,图像识别准确率受到图片内容影响。

    展开全文
  • 抓取网页数据的思路有好多种,一般有:直接代码请求http、模拟浏览器请求数据(通常需要登录验证)、控制浏览器实现数据抓取等。这篇不考虑复杂情况,放一个读取简单网页数据的小例子:目标数据将ittf网站上这个页面...
  • 抓取网页数据的思路有好多种,一般有:直接代码请求http、模拟浏览器请求数据(通常需要登录验证)、控制浏览器实现数据抓取等。这篇不考虑复杂情况,放一个读取简单网页数据的小例子: 目标数据 将ittf网站上这个...
  • 工作中遇到了抓取多个项目数据并且有多种验证方式包括Http标准验证和非标准验证NTLM、BASIC,写了个较通用的抓数框架,支持多线程,用到的开源框架有HttpClient 4.23、Jsoup、JSONObject、Spring3.0,注意HttpClient...
  • 抓取淘宝关键字相关信息的销售量,这和之前抓取csdn网站浏览量取不同,抓取csdn浏览量主要是通过bs4Tag标签,而淘宝的信息都是通过数据js动态生成的,所有通过python抓取的是未经js转换过得源码。如下图 好在...
  • 我们都知道HTTP是无连接的状态协议,但是客户端和服务器端需要保持一些相互信息,...用程序登录新浪微博或其他验证网站,关键点也在于需要保存cookie,之后附带cookie再来访问网站,才能够达到效果。这里就需要Pytho...
  • 今天研究一个功能,发现一个问题。...如果没有登录还好,有登录以后则需要进行验证。 但是web登录是别人做的,他们的认证机制并不清楚。 于是通过抓包工具,抓下来分析,发现认证sessionid是藏在http...
  • 对携带验证码的页面数据进行抓取 -2.可以将验证码图片进行解析,验证码图片下载到本地 -3.将验证码图片交给第三方进行识别,返回验证码图片上的值 -云打码平台 1.进行注册 注册普通用户和开发者用户 2....
  • 最近研究了下如何抓取为知笔记的...这里的Cookie来自两个域,估计为知那边是验证了token(登录后才能获取到token) 下载图片的代码: [csharp]view plaincopy varpath="https://note.wiz.cn/"+str...
  • 因为项目需要,需从向HTTPS页面发送一些数据并获取返回的数据。普通的http网页好办,直接用HttpWebRequest就可以轻松实现。如果对方网页是HTTP但需要登录后才能查看的,也不难实现:用HttpWebRequest加上身份信息...
  • 网站页面分为静态页面和动态页面,动态页面有分很多类,本篇主要是抓取的京东的https://miaosha.jd.com/category.html?cate_id=19链接(为什么不抓淘宝,因为淘宝做了些验证措施,如果验证未通过,跳转登录页面,有...
  • 抓取网页数据的思路有好多种,一般有:直接代码请求http、模拟浏览器请求数据(通常需要登录验证)、控制浏览器实现数据抓取等。这篇不考虑复杂情况,放一个读取简单网页数据的小例子:目标数据将ittf网站上这个页面上...
  • 抓取网页数据的思路有好多种,一般有:直接代码请求http、模拟浏览器请求数据(通常需要登录验证)、控制浏览器实现数据抓取等。这篇不考虑复杂情况,放一个读取简单网页数据的小例子:目标数据将ittf网站上这个页面...
  • 我们都知道HTTP是无连接的状态协议,但是客户端和服务器端需要保持一些相互信息,...用程序登录新浪微博或其他验证网站,关键点也在于需要保存cookie,之后附带cookie再来访问网站,才能够达到效果。 这里就需要P...
  • 针对如何对微博数据进行有效合理的采集,提出了基于微博API的分布式抓取技术,通过模拟微博登录自动授权,合理控制API的调用频次,结合任务分配控制器高效地获取微博数据。该分布式抓取技术还结合时间触发和内存...
  • 抓取网页数据的思路有好多种,一般有:直接代码请求http、模拟浏览器请求数据(通常需要登录验证)、控制浏览器实现数据抓取等。这篇不考虑复杂情况,放一个读取简单网页数据的小例子: 目标数据 将ittf网站上这个...
  • 前置条件:已经登录 ... 1.1 jmeter向服务器发送http请求时,需要验证 cookie的等设置信息给到...相关验证数据来源:一般是登陆网址后通过fiddler或者charles抓取,以fiddler为例,详见下图: 1.2 把Raw里面的数据...
  • 通过HttpURLConnection和Jsoup技术,抓取需要验证页面的数据,简单记录一下,做个备忘。 【需求】1.抓取界面需要登录后,才能访问 2.抓取界面中用户姓名和用户手机号 实现步骤: 一、获取界面HTML数据 ...
  • 这段时间在尝试破解各大网站的登录系统,同时又要避开人机识别码的验证,通过chrome的js调试器不断尝试深入了解各网站系统的登录流程及验证过程,总结发现了几款非常实用的工具包,对于抓取网站数据或是执行js脚本等...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 135
精华内容 54
关键字:

数据抓取登录验证