wks icon indicating copy to clipboard operation
wks copied to clipboard

字体文件下载失败bug

Open Abustler opened this issue 2 years ago • 5 comments

在下载案例分析--林肯电气公司的激励制度时,发现第二页的字体文件font_csss无法获取。后来我做了两点改进解决了这个问题: 第一点,通过抓取我发现字体文件的url不对 首先在这里获取coverUrl的ID,cover = re.search(r'https://wkimg.bdimg.com/img/(.*?)\?', html).group(1) https://github.com/BoyInTheSun/wks/blob/b2ece163e1f0bee505d81f6f751ef7afef85f324/main.py#L105 然后把这里的temp_dir改为cover https://github.com/BoyInTheSun/wks/blob/b2ece163e1f0bee505d81f6f751ef7afef85f324/main.py#L166 最后得到可用的url,font_csss 第二点,我发现urllib无法正常获取这个url的数据,换成requests就可以获取了

page = requests.get(url=fonts_csss[pagenums[i]], headers=headers)
raw = page.text

修改之后,就可以完美下载整个文件了,感觉requests比urllib舒服多了

Abustler avatar Jul 27 '22 03:07 Abustler

十分感谢!

urllib应该没啥问题,使用方法和requests有区别,其实我个人也习惯用requests,很奇怪我当时为什么这样写了。

希望能够和您深入交流,联系我的邮箱sun__by#163,com(替换符号,防爬虫)

BoyInTheSun avatar Jul 27 '22 06:07 BoyInTheSun

temp_dir = url.split('?')[0].split('/')[-1][:-5] 有些时候复制过来的链接没有后缀 .html 可能有点不通用。 page_data['readerInfo']['docId'] 这个是文档id page_data['viewBiz']['docInfo']['showStoreId'] 这个是cover 我用这2种下载ttf都没报错,但是合并pdf时缺f1c1c7c10740be1e640e9a810010002.ttf
只有下面这3个,第二页还是没有 f1c1c7c10740be1e640e9a810010001.ttf f1c1c7c10740be1e640e9a810020001.ttf f1c1c7c10740be1e640e9a810030001.ttf

602383883 avatar Jul 29 '22 03:07 602383883

我打开网页看了一下,page_data['readerInfo']['htmlUrls'] 没了,但是requests还是能获取到 https://yyfyyf.lanzouj.com/inVLy08lq8xc https://yyfyyf.lanzouj.com/iTq3N08lq8ze

602383883 avatar Jul 29 '22 03:07 602383883

我打开网页看了一下,page_data['readerInfo']['htmlUrls'] 没了,但是requests还是能获取到 https://yyfyyf.lanzouj.com/inVLy08lq8xc https://yyfyyf.lanzouj.com/iTq3N08lq8ze

意思是网页上有,但是没有保存下来吗

BoyInTheSun avatar Jul 29 '22 08:07 BoyInTheSun

我打开网页看了一下,page_data['readerInfo']['htmlUrls'] 没了,但是requests还是能获取到 https://yyfyyf.lanzouj.com/inVLy08lq8xc https://yyfyyf.lanzouj.com/iTq3N08lq8ze

意思是网页上有,但是没有保存下来吗

是代码请求到了第一页,第二页地址打不开,但是浏览器打开网页源码整个包含json和ttf链接的那个htmlurls都找不到了

602383883 avatar Jul 29 '22 09:07 602383883