自媒体文章采集软件(文章非原创还没有标记,怎么把文章转成完了)
优采云 发布时间: 2021-11-27 09:16自媒体文章采集软件(文章非原创还没有标记,怎么把文章转成完了)
上一篇文章因为时间匆忙留下了几个问题:
分页时出现数据重复,爬取数据的时候不知道那些文章是原创,那些文章非原创还没有标记公众号文章恢复到本地。方便以后阅读。公众号文章到本地的渲染
友情提示:所有抓包操作请使用微信小号进行操作。不知道会不会有公众号操作,反正小心做*敏*感*词*船!
分页期间数据重复
发现这里返回的数据有一个next_offset字段,表示我想要下一页的数据偏移量,所以每次取出数据后都重新赋值,发现数据没有重复再次。
self.offset = all_datas['next_offset'] # 下一页的偏移量
self.request_data()
什么时候抓取数据,我完全不知道
一直在Charles里爬取数据,发现爬到最后一页的时候发现can_msg_continue的状态变成了0,于是有了这行代码
if 0 == all_datas['ret'] and 1 == all_datas['can_msg_continue']:
那些文章是原创,那些文章非原创还没有被标记
很多时候我更喜欢原创文章,我深深尊重这些原创工作者。他们的文章费了不少功夫,而公众号恰好有原创 Tag,所以我猜应该有一个原创字段标识符。分析了Charles的抓包,发现copyright_stat字段接近copyright的意思。然后我进一步分析,发现status等于11的时候就是原创
copyright = data['app_msg_ext_info']['copyright_stat']
copyright = '原创文章_' if copyright == 11 else '非原创文章_'
获取数据的完整代码如下:
def parse_data(self, response_data):
all_datas = json.loads(response_data)
if 0 == all_datas['ret'] and 1 == all_datas['can_msg_continue']:
summy_datas = all_datas['general_msg_list']
datas = json.loads(summy_datas)['list']
for data in datas:
try:
title = data['app_msg_ext_info']['title']
title_child = data['app_msg_ext_info']['digest']
article_url = data['app_msg_ext_info']['content_url']
cover = data['app_msg_ext_info']['cover']
copyright = data['app_msg_ext_info']['copyright_stat']
copyright = '原创文章_' if copyright == 11 else '非原创文章_'
self.count = self.count + 1
print('第【{}】篇文章'.format(self.count), copyright, title, title_child, article_url, cover)
self.creat_pdf_file(article_url, '{}_{}'.format(copyright, title))
except:
continue
time.sleep(3)
self.offset = all_datas['next_offset'] # 下一页的偏移量
self.request_data()
else:
if 0 == all_datas['can_msg_continue']:
exit('数据抓取完毕!')
else:
exit('数据抓取出错:' + all_datas['errmsg'])
将公众号文章转至本地。以后读起来方便。
只是把文章抓到根本满足不了我的兴趣,我想把珍贵的公众号文章放到本地看看,所以我有。我把文章转换成pdf文档的思路,如何把文章转换成pdf文档,
操作分为以下三个步骤:
self.config = pdfkit.configuration(wkhtmltopdf='C:/Program Files/wkhtmltopdf/bin/wkhtmltopdf.exe') # 这里需要配置一下wkhtmlpdf.exe路径
def creat_pdf_file(self, url, title):
try:
file = 'D:/store/file/{}.pdf'.format(title)
if not os.path.exists(file): # 过滤掉重复文件
pdfkit.from_url(url, file, configuration=self.config)
except Exception as e:
print(e)
效果图如下:
仍然存在一些不足。网页上的图片无法写入pdf文件。另外,这个pdfkit还有很多用途。我不会在这里讨论它。有兴趣的可以自己进去看看!