<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Scrapy 采集需要登錄注冊的網站

      方法一:使用賬號密碼登錄網址并采集(如遇到圖形驗證碼等,需要額外進行處理)

      #!/usr/bin/py2
      # -*- coding: utf-8 -*-
      #encoding=utf-8
      
      from bs4 import BeautifulSoup
      from scrapy.http import Request, FormRequest
      from spider_test.items import *
      from scrapy.spiders import CrawlSpider
      from spider_test import settings
      
      class ScrapyTestSpider(CrawlSpider):
      
          name = "spider_test"
          allowed_domains = [settings.SPIDER_DOMAIN]    # 這是在settings.py文件中的自定義配置,其值類似于 www.demo.com
      
          def start_requests(self):
              """第一次請求一下登錄頁面,設置開啟cookie使其得到cookie,設置回調函數"""
              yield Request('http://%s/admin/account/login.html' % settings.SPIDER_DOMAIN, meta={'cookiejar': 1}, callback=self.parse)
      
          def parse(self, response):
              data = dict(username="xiaoming",    # 登錄頁表單的賬號字段
                          password="888888")        # 登錄頁表單的密碼字段
      
              print('登錄中....!')
              """第二次用表單post請求,攜帶Cookie、瀏覽器代理、用戶登錄信息,進行登錄給Cookie授權"""
              yield FormRequest(url='http://%s/admin/account/dologin.html' % settings.SPIDER_DOMAIN,  # 真實post地址
                                meta={'cookiejar': 1},
                                formdata=data,
                                callback=self.jump_list)
      
          def jump_list(self, response):
              print('正在請需要登錄才可以訪問的頁面....!')
              yield Request('http://%s/admin/office/getofficelist.html' % settings.SPIDER_DOMAIN,
                            meta={'cookiejar': 1}, callback=self.parser_list)
      
          def parser_list(self, response):
              soup = BeautifulSoup(response.body, 'html.parser')
              page_list = soup.find(attrs={'class': 'pagination'}).find_all('a')
              if page_list:
                  for page in page_list:
                      page_url = 'http://%s%s' % (settings.SPIDER_DOMAIN, page.get('href'))
                      yield Request(page_url, meta={'cookiejar': 1}, callback=self.parser_list)
      
              office_list = soup.find_all('a', attrs={'class': 'ui-office-list'})
              if office_list:
                  for office in office_list:
                      office_url = 'http://%s%s' % (settings.SPIDER_DOMAIN, office.attrs['href'])
                      yield Request(office_url, meta={'cookiejar': 1}, callback=self.parse_article)
      
          def parse_article(self, response):
              test_item = SpiderTestItem()
              soup = BeautifulSoup(response.body, 'html.parser')
              container = soup.find('table', attrs={'class': 'index-statistics-table'})
              test_item['source_url'] = response.url
              test_item['title'] = soup.title.get_text()
              test_item['article_content'] = container.prettify()
              return test_item

       

       

      方法二:使用已登錄的Cookie信息進行采集(可規避圖形驗證碼)

      #!/usr/bin/py2
      # -*- coding: utf-8 -*-
      #encoding=utf-8
      
      from bs4 import BeautifulSoup
      from scrapy.http import Request, FormRequest
      from spider_test.items import *
      from scrapy.spiders import CrawlSpider
      from spider_test import settings
      
      class ScrapyTestSpider(CrawlSpider):
      
          name = "spider_test"
          allowed_domains = [settings.SPIDER_DOMAIN]
      
          cookies = dict(PHPSESSID='qwertyuiopasdfghjklzxcvbnm')  # 登錄后得到的會話ID
      
          def start_requests(self):
              print('正在請需要登錄才可以訪問的頁面....!')
              yield Request('http://%s/admin/office/getofficelist.html' % settings.SPIDER_DOMAIN, cookies=self.cookies,
                          callback=self.parser_list)
      
          def parser_list(self, response):
              soup = BeautifulSoup(response.body, 'html.parser')
              page_list = soup.find(attrs={'class': 'pagination'}).find_all('a')
              if page_list:
                  for page in page_list:
                      page_url = 'http://%s%s' % (settings.SPIDER_DOMAIN, page.get('href'))
                      yield Request(page_url, cookies=self.cookies, callback=self.parser_list)
      
              office_list = soup.find_all('a', attrs={'class': 'ui-office-list'})
              if office_list:
                  for office in office_list:
                      office_url = 'http://%s%s' % (settings.SPIDER_DOMAIN, office.attrs['href'])
                      yield Request(office_url, cookies=self.cookies, callback=self.parse_article)
      
          def parse_article(self, response):
              test_item = SpiderTestItem()
              soup = BeautifulSoup(response.body, 'html.parser')
              container = soup.find('table', attrs={'class': 'index-statistics-table'})
              test_item['source_url'] = response.url
              test_item['title'] = soup.title.get_text()
              test_item['article_content'] = container.prettify()
              return test_item

       

      posted @ 2020-04-02 21:53  Funsion Wu  Views(414)  Comments(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲高清aⅴ日本欧美视频| 久久精品国产99亚洲精品| 男女xx00xx的视频免费观看| 国语精品自产拍在线观看网站| 亚洲乱码中文字幕久久孕妇黑人| 亚洲人成网站在小说| 亚洲一区中文字幕第十页| 9999国产精品欧美久久久久久| 色综合夜夜嗨亚洲一二区| 南丰县| 亚洲精品综合一区二区在线| 亚洲乱理伦片在线观看中字| 天堂在线最新版av观看| 依依成人精品视频在线观看| 国产精品人成在线播放蜜臀 | 五十路久久精品中文字幕| 国产360激情盗摄全集| 亚洲an日韩专区在线| 精品人妻蜜臀一区二区三区| 欧美性xxxxx极品| 中文熟妇人妻av在线| 国产色无码专区在线观看| 韩国美女福利视频在线观看| 国产亚洲精品俞拍视频| 99精品国产综合久久久久五月天 | 亚洲另类丝袜综合网| а天堂中文最新一区二区三区| 国产国产午夜福利视频| 综合偷自拍亚洲乱中文字幕| 中国丰满少妇人妻xxx性董鑫洁| 亚洲一区二区三区自拍偷拍| 国产成人综合色就色综合| 亚洲成人精品综合在线| 米奇影院888奇米色99在线| 强奷乱码中文字幕| 无码国产偷倩在线播放| 在线看片免费人成视久网| 亚洲精品动漫一区二区三| 亚洲人成网站色7799| av偷拍亚洲一区二区三区| 亚洲第一综合天堂另类专|