请稍等 ...
×

采纳答案成功!

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

模拟登陆问题

Booby老师,请问设置模拟登陆之后,进行debug操作总是报错是为什么?图片描述
图片描述

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

2回答

bobby 2021-10-08 11:52:26
from urllib import parse
import re
import json

import scrapy
import undetected_chromedriver
from scrapy import Request
import requests

class JobboleSpider(scrapy.Spider):
    name = 'jobbole3'
    allowed_domains = ['news.cnblogs.com']
    start_urls = ['http://news.cnblogs.com/']
    custom_settings = {
        "COOKIES_ENABLED": True
    }

    def start_requests(self):
        # 入口可以模拟登录拿到cookie,selenium控制浏览器会被一些网站识别,eg:知乎,拉勾
        import undetected_chromedriver.v2 as uc  # 后面讲解selenium的时候,会下载chromedriver.exe
        browser = uc.Chrome()
        browser.get("https://account.cnblogs.com/signin")
        # 自动化输入,自动化识别滑动验证码并拖动整个自动化过程都会
        input("请回车继续:")
        cookies = browser.get_cookies()
        cookie_dict = {}
        for cookie in cookies:
            cookie_dict[cookie['name']] = cookie['value']
        for url in self.start_urls:
            # 将cookie交给scrapy,那么后续的请求会沿用之前请求的cookie吗?
            headers = {
                'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36'
            }
            yield scrapy.Request(url, cookies=cookie_dict, headers=headers, dont_filter=True)

    def parse(self, response):
        # 1.获取新闻列表页中的新闻URL,并交给scrapy进行下载后调用相应的解析方法
        # 2.获取下一页的URL并交给scrapy进行下载,下载完成后交给parse继续跟进

        # url = response.xpath('//*[@id="entry_703324"]/div[2]/h2/a/@href').extract_first("")
        # url = response.xpath('//div[@id="news_list"]//h2[@class="news_entry"]/a/@href').extract()
        url = response.css('div#news_list h2 a::attr(href)').extract()
        pass

这个代码我运行了没有问题,你的chrome版本是多少? 我本地的chrome是最新的版本 94.0.4606.54

0 回复 有任何疑惑可以回复我~
  • 提问者 宝慕林4168432 #1
    我刚自动更新过,是94.0.4606.81,更新之后我又运行了一遍程序,还是不行,有没有可能是因为我是从境外访问网页地址的原因?
    回复 有任何疑惑可以回复我~ 2021-10-08 12:24:02
  • bobby 回复 提问者 宝慕林4168432 #2
    你是境外访问的?你可以留个qq 我加你看看
    回复 有任何疑惑可以回复我~ 2021-10-09 12:38:17
  • 提问者 宝慕林4168432 回复 bobby #3
    好的,872123991
    回复 有任何疑惑可以回复我~ 2021-10-13 04:05:48
bobby 2021-10-03 21:31:08

你把你的cnblog的代码贴一下我看看

0 回复 有任何疑惑可以回复我~
  • 提问者 宝慕林4168432 #1
    好的,已经贴了,老师你看一下
    回复 有任何疑惑可以回复我~ 2021-10-04 02:36:24
  • bobby 回复 提问者 宝慕林4168432 #2
    这个代码我无法复制下来。你贴代码把
    回复 有任何疑惑可以回复我~ 2021-10-05 18:14:48
  • 提问者 宝慕林4168432 回复 bobby #3
    from urllib import parse
    import re
    import json
    
    import scrapy
    import undetected_chromedriver
    from scrapy import Request
    import requests
    
    class JobboleSpider(scrapy.Spider):
        name = 'jobbole'
        allowed_domains = ['news.cnblogs.com']
        start_urls = ['http://news.cnblogs.com/']
        custom_settings = {
            "COOKIES_ENABLED": True
        }
    回复 有任何疑惑可以回复我~ 2021-10-06 12:26:59
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信