写了 python 程序,有需要可以找我代查(wx:fas1024). 下面是我的开发实例:
提交 Cookie 信息模拟微博登录
需要爬取登录之后的信息,大家都是望而止步,不要担心,今天呢,给大家提供一个超级简单的方法,就是提交 Cookie 信息登录微博,你会发现,你点击网址会自动跳转到登录微博的界面(没有跳转的注销掉自己的账号),如下图所示:
然后登录自己的账号密码,这时记得打开 Fiddler 进行抓包,如图所示,提取 Cookie 做为请求沈梦辰微博网址的请求头即可。
异步加载数据如何爬取
我在网上看过移动端的微博数据很好爬,没有异步加载,可是不知道为什么,我的评论数据就是异步加载的,其实异步加载不可怕,找到相应 js 包即可,如下图为沈梦辰的一条微博和评论的 js 包。我们只需请求这个 js 数据,然后利用 json 库即可提取我们所需的评论数据。
代码
import requests
import json
import time
import pymongo client = pymongo.MongoClient(‘localhost’, 27017)
client = pymongo.MongoClient(‘localhost’, 27017)
weibo = client[‘weibo’]
comment_shengmengc = weibo[‘comment_shengmengc’]
headers =
{“Cookies”:’xxxxxxxxxxx’, “User-Agent”:’Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1′ }
url_comment = [‘http://m.weibo.cn/api/comment…{}’.format(str(i))
for i in range(0,1000)] def get_comment(url):
wb_data = requests.get(url,headers=headers).text data_comment = json.loads(wb_data) try: datas = data_comment[‘data’] for data in datas: comment = {“comment”:data.get(“text”)} comment_shengmengc.insert_one(comment)
try: datas = data_comment[‘data’] for data in datas: comment = {“comment”:data.get(“text”)} comment_shengmengc.insert_one(comment)
except KeyError:
pass
for url in url_comment:
get_comment(url)
time.sleep(2)