设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 20315|回复: 9
打印 上一主题 下一主题

抓取微信公众账号每天的文章更新(抛出第一块砖)

[复制链接]

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
楼主
发表于 2013-9-8 00:27:23 |只看该作者 |倒序浏览
我现在就突然想到这么一个念头,我不知道具体的方法,但我想这个一定是可以通过我们掌握的编程知识解决的。

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

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

求思路。
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

1

主题

0

好友

95

积分

注册会员

Rank: 2

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

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

crossin.png

回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

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

我和它的开发者还有过一些交流的
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

13

积分

新手上路

Rank: 1

地板
发表于 2013-9-11 00:20:20 |只看该作者
回复

使用道具 举报

0

主题

0

好友

63

积分

注册会员

Rank: 2

5#
发表于 2013-9-13 13:08:39 |只看该作者
不清楚"传送门"是这么抓取到微信的文章的,找不到微信的api接口
我尝试抓取传送门里面的文章,但是发现主体文章列表是ajax返回的。直接访问ajax地址是404页面,应该是判断了refer
无解...
回复

使用道具 举报

0

主题

0

好友

63

积分

注册会员

Rank: 2

6#
发表于 2013-9-13 14:21:49 |只看该作者
用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()
复制代码
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

7#
发表于 2013-9-13 21:31:03 |只看该作者
test777 发表于 2013-9-13 14:21
用urllib2伪造了referer和user-agent,终于抓到了

good
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

2

主题

0

好友

154

积分

注册会员

Rank: 2

8#
发表于 2013-10-11 17:03:13 |只看该作者
发现好多的高手……
回复

使用道具 举报

0

主题

0

好友

8

积分

新手上路

Rank: 1

9#
发表于 2014-9-10 15:08:40 |只看该作者
chuansongme不知道如何抓取到微信文章的,而且是实时更新的。
还有些微信导航网也实时同步更新微信文章,谁知道这个原理
Crossin的编程教室:http://www.meili999.com/weixin/show/id/7028.html
回复

使用道具 举报

1

主题

0

好友

47

积分

新手上路

Rank: 1

10#
发表于 2016-4-21 22:48:02 |只看该作者
高手
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-11-23 21:35 , Processed in 0.035435 second(s), 28 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部