请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答 回答被采纳积分+3

2回答

提问者 qq_流行前线_0 2018-05-19 12:21:22

booby老师,我用crawlspider模拟登录发现被重定向了。

import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
import time
import pickle
import datetime
import sys
import io
class LagouSpider(CrawlSpider):
   name = 'lagou'
   allowed_domains = ['www.lagou.com']
   start_urls = ['https://www.lagou.com/']
   headers={
       "Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
       "Accept-Encoding":"gzip, deflate, br",
       "Accept-Language":"zh-CN,zh;q=0.8",
       "Connection":"keep-alive",
       "User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36",
        "Referer":'https://www.lagou.com',
        'Connection': 'keep-alive',
        "HOST": "www.lagou.com"
       }
   custom_settings = {
       "COOKIES_ENABLED": True
   }
   rules = (
       Rule(LinkExtractor(allow=r'gongsi/j/\d+.html'), follow=True),
       Rule(LinkExtractor(allow=r'zhaopin/.*'), follow=True),
       Rule(LinkExtractor(allow=r'jobs/\d+.html'), callback='parse_job', follow=True),
   )
   def parse_item(self, response):
       pass
   def start_requests(self):
       from selenium import webdriver
       sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030')
       chrome_opt=webdriver.ChromeOptions()
       prefs={"profile.managed_default_content_settings.images":2}
       chrome_opt.add_experimental_option("prefs",prefs)
       browser = webdriver.Chrome(executable_path="C:\\Program Files (x86)\\google\\Chrome\\Application\\chromedriver.exe",chrome_options=chrome_opt)
       browser.get("https://passport.lagou.com/login/login.html?service=https%3a%2f%2fwww.lagou.com%2f")
       account=input("请输入您的拉钩账号")
       password=input("请输入您的拉钩密码")
       browser.find_element_by_xpath("/html/body/section/div[1]/div[2]/form/div[1]/input").send_keys(account)
       browser.find_element_by_xpath("/html/body/section/div[1]/div[2]/form/div[2]/input").send_keys(password)
       browser.find_element_by_xpath("/html/body/section/div[1]/div[2]/form/div[5]").click()
       time.sleep(10)
       Cookies = browser.get_cookies()
       cookie_dict={}
       for cookie in Cookies:
           f=open('D:\\python\\WebSpider\\web_scrapy\\爬取拉勾网_crawlspider\\lagou_cookies\\123'+cookie['name']+'.lagou','wb')
           pickle.dump(cookie,f)
           f.close()
           cookie_dict[cookie['name']]=cookie['value']
       browser.close()
       return [scrapy.Request(url=self.start_urls[0], dont_filter=True, cookies=cookie_dict)]

0 回复 有任何疑惑可以回复我~
  • bobby #1
    是否在settings中设置了 cookie_enabled为true
    回复 有任何疑惑可以回复我~ 2018-05-21 14:05:25
  • 提问者 qq_流行前线_0 回复 bobby #2
    设置了,老师。
    回复 有任何疑惑可以回复我~ 2018-05-22 19:53:17
bobby 2018-05-15 17:42:58

你看一下5-2章节 我模拟登录过知乎  拉勾网逻辑是一样的

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号