栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将InitSpider与Splash结合使用:仅解析登录页面?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将InitSpider与Splash结合使用:仅解析登录页面?

我认为,仅Splash不能很好地处理此特殊情况。

这是工作思路:

  • 使用
    selenium
    PhantomJS
    无头的浏览器登录到网站
  • 将浏览器
    cookie
    从传递
    PhantomJS
    Scrapy

代码:

import scrapyfrom selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECclass BboSpider(scrapy.Spider):    name = "bbo"    allowed_domains = ["bridgebase.com"]    login_page = "http://www.bridgebase.com/myhands/myhands_login.php?t=%2Fmyhands%2Findex.php%3F"    def start_requests(self):        driver = webdriver.PhantomJS()        driver.get(self.login_page)        driver.find_element_by_id("username").send_keys("user")        driver.find_element_by_id("password").send_keys("password")        driver.find_element_by_name("submit").click()        driver.save_screenshot("test.png")        WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.link_TEXT, "Click here for results of recent tournaments")))        cookies = driver.get_cookies()        driver.close()        yield scrapy.Request("http://www.bridgebase.com/myhands/index.php", cookies=cookies)    def parse(self, response):        if "recent tournaments" in response.body: self.log("Login successful")        else: self.log("Login failed")        print(response.body)

打印

Login successful
和“手”页面的HTML。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/368486.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号