python - Scrapy上传文件

标签 python scrapy web-crawler

我正在使用scrapy向网站发出表单请求。表单需要上传一个pdf文件,我们如何在Scrapy中做到这一点。我正在尝试这样 -

FormRequest(url,callback=self.parseSearchResponse,method="POST",formdata={'filename':'abc.xyz','file':'path to file/abc.xyz'})

最佳答案

目前,Scrapy 没有内置支持上传文件。
RFC1867 中指定通过 HTTP 中的表单上传文件.根据规范,带有 Content-Type: multipart/form-data 的 HTTP 请求是必需的(在您的代码中是 application/x-www-form-urlencoded )。
要使用 Scrapy 实现文件上传,您需要:

  • 熟悉HTTP文件上传的基本概念。
  • scrapy.Request 开始(而不是 FormRequest )。
  • 给它一个合适的Content-Type header 值。
  • 自己构建请求体。

  • 另见:How does HTTP file upload work?

    关于python - Scrapy上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39303851/

    相关文章:

    javascript - Javascript 中是否有类似于 Python 中的 .format() 的函数?

    python eyed3 eyed3.id3.tag.CommentsAccessor 对象位于 0x7fbb2316d890

    python - 我应该改变我的功能

    python - 尝试从 Github 页面抓取数据

    python - 在哪里可以了解 scrapy SgmlLinkExtractor?

    python - 为字符的矩形矩阵添加边框(*)

    python - 抓取和监控 +1000 个网站

    python - scrapy Spider 的输出与 scrapy shell 的输出不同

    search-engine - 如何使用 Apache Nutch 保存原始 html 文件

    c# - 如何设计定制化的搜索引擎?