Crossin的编程教室

标题: 抓取微信公众账号每天的文章更新(抛出第一块砖) [打印本页]

作者: crossin先生    时间: 2013-9-8 00:27
标题: 抓取微信公众账号每天的文章更新(抛出第一块砖)
我现在就突然想到这么一个念头,我不知道具体的方法,但我想这个一定是可以通过我们掌握的编程知识解决的。

现在已经有类似的网站,比较有名的就是传送门:http://chuansong.me/

第一步可以从最简单的开始,比如就是抓取“Crossin的编程教室”最新的文章。搞定了之后,我们再一步步完善,甚至最后做一个网页出来也是可能的。

求思路。

作者: Miracle_Wong    时间: 2013-9-8 23:25
没想到crossin先生 也使用“传送门”,我一直都是用这个网站看各种微信文章的,包括我们的“Crossin的编程教室”(如图),我还写过一篇“传送门”的介绍文章呢!文章在这里:如何在电脑端看微信文章,希望对大家有所帮助!

crossin.png (90.67 KB, 下载次数: 561)

crossin.png


作者: crossin先生    时间: 2013-9-10 00:09
Miracle_Wong 发表于 2013-9-8 23:25
没想到crossin先生 也使用“传送门”,我一直都是用这个网站看各种微信文章的,包括我们的“Crossin的编程 ...

我和它的开发者还有过一些交流的
作者: cs1707    时间: 2013-9-11 00:20
http://mp.weixin.qq.com/mp/getma ... chat_webview_type=1
作者: test777    时间: 2013-9-13 13:08
不清楚"传送门"是这么抓取到微信的文章的,找不到微信的api接口
我尝试抓取传送门里面的文章,但是发现主体文章列表是ajax返回的。直接访问ajax地址是404页面,应该是判断了refer
无解...
作者: test777    时间: 2013-9-13 14:21
用urllib2伪造了referer和user-agent,终于抓到了
  1. import urllib2, HTMLParser

  2. article_list = []

  3. class MyParser(HTMLParser.HTMLParser):
  4.     def __init__(self):
  5.         HTMLParser.HTMLParser.__init__(self)

  6.     def handle_starttag(self,tag,attrs):
  7.         if tag == 'a':
  8.             for name,value in attrs:
  9.                 if name == 'href':
  10.                     print(value)
  11.                     article_list.append(value)


  12. def fetch_data(uri):
  13.     request = urllib2.Request(uri)
  14.     request.add_header('Referer','http://chuansongme.com/account/crossincode')
  15.     request.add_header('Content-Type','application/x-www-form-urlencoded')
  16.     request.add_header('User-Agent','fake-client')
  17.     response = urllib2.urlopen(request)
  18.     return response



  19. list_str = fetch_data('http://chuansongme.com/more/account-crossincode/recent?lastindex=0').read()
  20. print(list_str)

  21. my = MyParser()
  22. my.feed(list_str.decode('utf-8'))

  23. article = fetch_data(article_list[0]).read()
  24. print(article)

  25. f = open('weixin.html','w')
  26. f.write(article)
  27. f.close()
复制代码

作者: crossin先生    时间: 2013-9-13 21:31
test777 发表于 2013-9-13 14:21
用urllib2伪造了referer和user-agent,终于抓到了

good
作者: onlyforstop    时间: 2013-10-11 17:03
发现好多的高手……
作者: kakalala    时间: 2014-9-10 15:08
chuansongme不知道如何抓取到微信文章的,而且是实时更新的。
还有些微信导航网也实时同步更新微信文章,谁知道这个原理
作者: 渡俊    时间: 2016-4-21 22:48
高手




欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5