scrapy 抓一个页面的 PDF,并且把他们合并为一个,但是发现文件大小对的,但是里面的内容只有第一个 PDF 里面的,代码如下,求教大神。

2018-04-20 23:07:51 +08:00
 Fuyu0gap

代码如下:

-- coding: utf-8 --

import scrapy

class LinearSpider(scrapy.Spider): name = "linear" allowed_domains = ["ocw.mit.edu"] start_urls = ['https://ocw.mit.edu/courses/mathematics/18-06sc-linear-algebra-fall-2011/resource-index/']

def parse(self, response):
    page_hrefs = response.xpath("*//tr//td/a/@href").re(".*sum.pdf")
    for href in page_hrefs:
        new_url = 'https://ocw.mit.edu' + href
        print(new_url)
        yield scrapy.Request(new_url,callback=self.parse_href)

def parse_href(self,response):
    with open('linear.pdf','ab') as f:
        f.write(response.body)
        f.close()
1949 次点击
所在节点    Python
3 条回复
Fuyu0gap
2018-04-20 23:11:23 +08:00
分开下载页面里所有的 PDF 是可以的,以及这个 Markdown 显示不全怎么肥四……
pc10201
2018-04-21 19:07:19 +08:00
with open('linear.pdf','ab') as f
pdf 不能这么简单的拼接吧,最好每一个分开下载,再用第三方工具整合在一起
Fuyu0gap
2018-04-23 17:20:53 +08:00
@pc10201 我最后也是和你一样的思路解决的,不过 PDF 的拼接原理和文本差异在哪里呢?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/448586

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX