7 月 4 日,林丹在微博上宣布了自己退役的消息,7 月 6 日,林丹出轨女主赵雅淇发文诉委屈,先简单看一下他们发的微博。
对于他们的微博内容,这里不做评价,我们使用 Python 爬取他们所发微博下面的评论信息,看看网友都说了些什么。
爬取之前,先简单了解一下微博,微博主要有如下三种展示形式:
其中移动端爬取相对容易一些,这里我们就从移动端下手,首先在浏览器上输入 http://weibo.cn
打开,如下图所示:
我们可以看到有一个搜索框,我们可以通过它来找人,以林丹为例,我们在搜索框输内入林丹之后点击找人
按钮,就可以搜到林丹的微博了,如下图所示:
我们点击其微博名进入微博主页,如下图所示:
接着打开开发者工具并选择 Network
,然后点击评论
,如下图所示:
因为评论内容较多,查看更多内容是需要翻页的,我们将页面向下拉,可以看到翻页按钮,我们点下页
看一下其具体请求,如下图所示:
上图中的 Request URL
中的 page 参数前面是固定的,page 是页号,爬取时我们需要用到的就是这个 URL,除此之外,我们还需要用到 cookie
和 user-agent
参数,在下面的 Request Headers
中就可找到,如下图所示:
需要用的东西找齐了之后,我们就可以爬取评论了,主要代码实现如下:
# 爬取一页评论内容
def get_one_page(url):
headers = {
'User-agent' : '自己的User-agent',
'Host' : 'weibo.cn',
'Accept' : 'application/json, text/plain, */*',
'Accept-Language' : 'zh-CN,zh;q=0.9',
'Accept-Encoding' : 'gzip, deflate, br',
'Cookie' : '自己的Cookie',
'DNT' : '1',
'Connection' : 'keep-alive'
}
# 获取网页 html
response = requests.get(url, headers = headers, verify=False)
# 爬取成功
if response.status_code == 200:
# 返回值为 html 文档,传入到解析函数当中
return response.text
return None
# 解析保存评论信息
def save_one_page(html):
comments = re.findall('<span class="ctt">(.*?)</span>', html)
for comment in comments[1:]:
result = re.sub('<.*?>', '', comment)
if '回复@' not in result:
with open('ld_comment.txt', 'a+', encoding='utf-8') as fp:
fp.write(result)
<< · Back Index ·>>
上一篇
我來瞭我來瞭,我帶著萬人血書求的高效去痱子方法來瞭!!最近門診接待瞭好多過敏娃,不是臉上有痱子,就是胳膊和大腿上密密...
一、我為什麼買壁掛爐因為最近我們這邊在裝燃氣管道,而且我們這邊也沒有集中供暖,之間都是傢裡燒爐子取暖,後來他們裝天然...