请稍等 ...
×

采纳答案成功!

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

Missing argument grant_type

老师好,按照您最想的视频代码,我试着写了一下,账号密码都能正确输入,但点击登陆的时候,网页出现Missing argument grant_type 这个提示。尽管我尝试手动点击,依旧出现 Missing argument grant_type


https://img.mukewang.com/szimg/5b628be60001416320781362.jpg


https://img.mukewang.com/szimg/5b628c130001901623241394.jpg

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

10回答

python_me 2018-08-06 21:41:29

ubuntu系统完美解决:

1. chrome浏览器降到60版本,下载地址: https://www.slimjet.com/chrome/download-chrome.php?file=lnx%2Fchrome64_60.0.3112.90.deb

2. chromedriver使用2.33的版本,下载地址: https://chromedriver.storage.googleapis.com/2.33/chromedriver_linux64.zip

2 回复 有任何疑惑可以回复我~
  • bobby 回复 python_me #1
    https://git.imooc.com/Project/coding-92/src/master/chromdriver2.33 我已经上传到慕课网的git上了
    回复 有任何疑惑可以回复我~ 2018-08-08 11:17:37
  • 2选一,还是2部都做
    回复 有任何疑惑可以回复我~ 2018-11-03 11:15:47
python_me 2018-08-06 00:36:46

同样的问题 求支援 代码

0 回复 有任何疑惑可以回复我~
w84422 2018-08-04 23:46:22

知道访问主页报400的原因了,return [scrapy.Request(url=self.start_urls[0], dont_filter=True, cookies=cookie_dict)],是这行代码中没有 headers = XXX,加上就能正常访问了。

综上所述,报Missing argument grant_type错误,是浏览器的版本自动升级为最高版本导致,把Firefox降到57.0的版本,插件使用geckodriver-v0.21.0-win64,问题解决

0 回复 有任何疑惑可以回复我~
  • bobby #1
    chromedriver降到60版本 然后chromedriver使用2.33的版本试试
    回复 有任何疑惑可以回复我~ 2018-08-06 13:59:22
w84422 2018-08-04 23:42:16

我把Firefox降到57.0的版本,不报Missing argument grant_type了,但是return [scrapy.Request(url=self.start_urls[0], dont_filter=True, cookies=cookie_dict)]后,打开'https://www.zhihu.com/'时,返回400错误,并没有进入到def parse(self, response):方法

0 回复 有任何疑惑可以回复我~
heipepper 2018-08-04 17:40:08

情况是这样的,前两天使用selenium和Chrome driver登陆还可以成功的,到了写入数据库那一步的时候,模拟登陆就出现Missing argument grant_type这个错误,然后我下载了Firefox浏览器插件也不行,同样的错误。

0 回复 有任何疑惑可以回复我~
heipepper 2018-08-04 17:32:53

同样的问题

0 回复 有任何疑惑可以回复我~
qq_马与草原_04174498 2018-08-04 15:20:44

你搞好了吗,我也是同样的问题。。

0 回复 有任何疑惑可以回复我~
bobby 2018-08-03 17:24:52
# -*- coding: utf-8 -*-
import re
import json
import datetime

try:
    import urlparse as parse
except:
    from urllib import parse

import scrapy
from scrapy.loader import ItemLoader
from items import ZhihuQuestionItem, ZhihuAnswerItem


class ZhihuSpider(scrapy.Spider):
    name = "zhihu_sel"
    allowed_domains = ["www.zhihu.com"]
    start_urls = ['https://www.zhihu.com/']

    #question的第一页answer的请求url
    start_answer_url = "https://www.zhihu.com/api/v4/questions/{0}/answers?sort_by=default&include=data%5B%2A%5D.is_normal%2Cis_sticky%2Ccollapsed_by%2Csuggest_edit%2Ccomment_count%2Ccollapsed_counts%2Creviewing_comments_count%2Ccan_comment%2Ccontent%2Ceditable_content%2Cvoteup_count%2Creshipment_settings%2Ccomment_permission%2Cmark_infos%2Ccreated_time%2Cupdated_time%2Crelationship.is_author%2Cvoting%2Cis_thanked%2Cis_nothelp%2Cupvoted_followees%3Bdata%5B%2A%5D.author.is_blocking%2Cis_blocked%2Cis_followed%2Cvoteup_count%2Cmessage_thread_token%2Cbadge%5B%3F%28type%3Dbest_answerer%29%5D.topics&limit={1}&offset={2}"

    headers = {
        "HOST": "www.zhihu.com",
        "Referer": "https://www.zhizhu.com",
        'User-Agent': "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0"
    }

    custom_settings = {
        "COOKIES_ENABLED": True
    }

    def parse(self, response):
        """
        提取出html页面中的所有url 并跟踪这些url进行一步爬取
        如果提取的url中格式为 /question/xxx 就下载之后直接进入解析函数
        """
        pass

    def parse_question(self, response):
        #处理question页面, 从页面中提取出具体的question item
       pass

    def parse_answer(self, reponse):
        pass

    def start_requests(self):
        from selenium import webdriver
        browser = webdriver.Chrome(executable_path="E:/tmp/chromedriver.exe")

        browser.get("https://www.zhihu.com/signin")
        browser.find_element_by_css_selector(".SignFlow-accountInput.Input-wrapper input").send_keys(
            "xxx")
        browser.find_element_by_css_selector(".SignFlow-password input").send_keys(
            "xxx")
        browser.find_element_by_css_selector(
            ".Button.SignFlow-submitButton").click()
        import time
        time.sleep(10)
        Cookies = browser.get_cookies()
        print(Cookies)
        cookie_dict = {}
        import pickle
        for cookie in Cookies:
            # 写入文件
            f = open('H:/scrapy/ArticleSpider/cookies/zhihu/' + cookie['name'] + '.zhihu', '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 回复 有任何疑惑可以回复我~
  • 提问者 lemonlxn #1
    老师好,代码复制过去还是一样的。另外,我下载了firefox浏览器,发现也是这样。知乎这个章节,弄了好多天了,那就先放着看后面章节
    回复 有任何疑惑可以回复我~ 2018-08-03 18:22:13
  • 搞不定啊,求老师支援!
    回复 有任何疑惑可以回复我~ 2018-08-05 07:01:47
  • bobby 回复 DOS校友会 #3
    加我qq 442421039 我看看
    回复 有任何疑惑可以回复我~ 2018-08-06 11:44:50
提问者 lemonlxn 2018-08-03 12:14:50

老师好,我的谷歌版本是最新的。

Chromedriver也是七月最新的2.41版本,还是出现

Missing argument grant_type问题

https://img.mukewang.com/szimg/5b63d6520001154d16121010.jpg


https://img.mukewang.com/szimg/5b63d6820001000117600218.jpg

0 回复 有任何疑惑可以回复我~
bobby 2018-08-03 11:01:27

你用自己的浏览器访问有问题吗?  或者使用最新的chromedriver试试呢

0 回复 有任何疑惑可以回复我~
  • 提问者 lemonlxn #1
    老师好,我的谷歌版本是最新的。

    Chromedriver也是七月最新的2.41版本,还是出现

    Missing argument grant_type问题
    回复 有任何疑惑可以回复我~ 2018-08-03 12:14:47
  • 老师,我的也出现了同样的问题,用你的代码也是
    回复 有任何疑惑可以回复我~ 2018-08-04 15:22:42
  • chromedriver降到60版本 然后chromedriver使用2.33的版本试试
    回复 有任何疑惑可以回复我~ 2018-08-07 14:06:55
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信