自媒体文章采集软件(文章非原创还没有标记,怎么把文章转成完了)

优采云 发布时间: 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还有很多用途。我不会在这里讨论它。有兴趣的可以自己进去看看!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线