用urllib2采集微信文章
微信文章里有很多优质内容,想收藏分享到自己的网站上,但是如果一个个去编辑的会比较辛苦,能用程序重复的工作尽量用程序去解决,所以有了做微信文章采集的想法。当然这里也不是完全的自动采集,毕竟从采集链接来说是不规则链接。
基本思路是复制微信文章链接地址,然后配置好要分享到网站上的栏目以及相应的标签,然后以五篇文章为一组进行内容采集。其中图片暂时未采集(不能直接链接预估采集时得把图片流保存到图片服务上),嵌套的视频采集成功,进行了地址的转换,在chrome调试模式下能拿到转换地址。
def get_wx(arts):
try:
print "get_wx"
for item in arts:
#item["link"] 需采集的微信地址
#print item,item["link"]
base_url=item["link"]
opener=urllib2.build_opener()
response=opener.open(base_url)
content=response.read()
soup=BeautifulSoup(content)
#提取文章标题
titleHtml=soup.find(id="activity-name")
title=titleHtml.get_text().strip()
#print title
#提取文章内容主体
contentHtml=soup.find(id="js_content")
#去除img标签
imgs=contentHtml.findAll("img")
for img in imgs:
'''
img_src=img['data-src']
imgSrc_arr=str(img_src).split("/0")
img_src="%s/640?wx_fmt=jpeg"%imgSrc_arr[0]
del img['data-src']
del img['data-ratio']
del img['data-s']
del img['data-type']
del img['data-w']
img['src']=img_src
'''
if img.parent.name=="p":
img.parent.decompose()
img.decompose()
#iframe视频地址转换
iframes=contentHtml.findAll("iframe")
for iframe in iframes:
iframe_src= iframe["data-src"]
#print iframe_src
iframe_list=str(iframe_src).split("?")
#print iframe_list
#删除多余属性
del iframe["data-src"]
iframe["src"]="http://v.qq.com/iframe/player.html?%s"%iframe_list[1]
iframe.parent["style"]="text-align:center;"
#去除链接
hrefs=contentHtml.findAll("a")
for href in hrefs:
href.decompose()
'''
ps=contentHtml.findAll("p")
for p in ps:
if len(p.get_text().strip())==0:
p.decompose()
'''
#截取描述
content=contentHtml.get_text().strip()
desc=content[:120]
#保存文章
art=Article()
art.keywords=title
art.content=contentHtml
art.title=title
art.desc=desc
art.ispublish=0
#栏目
category=Category.objects.get(id=item["cla_id"])
art.category=category
#标签
tags_ids=list(str(item["tags_ids"][:-1]).split(","))
glossarys=Glossary.objects.filter(id__in=tags_ids)
art.save()
for item in glossarys:
art.glossary.add(item)
except Exception,ex:
print ex.message
地址:http://www.rgbtime.com/addwx/
您可能也对下面文章感兴趣:
There are 1 Comments to "用urllib2采集微信文章"