前段时间笔者写了一份儿爬取微博评论的代码,是用了http://m.weibo.cn的接口,通过这个接口比较好的是代码比较好写,因为数据都是json格式的,规律性非常直观,属性json数据和字典操作的朋友都可以很快掌握,但是这个有个比较大的问题是基本限制了前一百页的内容爬取,而且cookie过期的比较快,所以现在提供一种新的方式是通过xpath方式解析http://www.weibo.cn这个入口。这个方式下面,所有微博评论都是可以在代码中直观看到的,只是可能大家对于xpath的一些相关操作不熟悉,这一块儿大家可以自己去找资源学习,这里不做介绍。所谓的xpath解析网页,实质上和bs4差不多,只是xpath在工业级用的比较多,bs4适合于小型爬虫任务,这种方式下对于cookie的有效期较长,笔者曾经试过一个cookie用了两到三个月未失效。大家可以在打开某一个微博的评论页面时,直接查看源代码。以“https://weibo.cn/comment/Hpg589Py7?ckAll=1”为例,查看源代码发现是这样的
这样大家可以直接复制下来,找一个格式化网站格式化一下就可以很规则了,这里不做演示。
然后只要规则化后就是找h5标签,就行层层剖析就行,对于标签的剖析不做解释。源码贴在下面供大家学习。
# -*- coding:utf-8 -*-
__author__ = 'TengYu'
import requests
import xlwt
import json
import time
import re
from datetime import timedelta
from datetime import datetime
from lxml import etree
import sys
reload(sys)
sys.setdefaultencoding('utf8')
headers = {
'User-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:55.0) Gecko/20100101 Firefox/55.0',
'Cookie': 'your-cookie'
}
#工具类,用来去除爬取的正文中一些不需要的链接、标签等
class Tool:
deleteImg = re.compile('<img.*?>')
newLine =re.compile('<tr>|<div>|<