0
点赞
收藏
分享

微信扫一扫

【原】【爬虫系列】简要获取V2EX的今日热议主题

在V2EX主页的右侧有个最热主题区域,里面列出了当日的热门讨论话题。使用爬虫技术获取这些热门主题文本和链接。

注意:v2ex本身提供了接口去获取这些热门主题的详细信息,本节内容只是举例,并不是最佳实践

具体步骤

  • 访问v2ex主页,获取html文本
  • 分析html文本,找出待获取内容的特征
  • 解析html代码,根据特征拿出目标内容
  • 打印这些内容

分析html代码

热门内容部分的html代码如下所示

<span class="item_hot_topic_title">
<a href="/t/458403">后端工程师不会手写 sql,可以接受不?</a>
</span>

【原】【爬虫系列】简要获取V2EX的今日热议主题_html

 

可以看出我们要找到的是所有class=item_hot_topic_title的span下面的a元素

代码

新建名为​​v2ex-hot.py​​的文件,输入下面的内容

# coding:utf-8
#!/usr/bin/python

# @Time :16-5-29 下午3:20
# @Author :Hao Chuang
# @Wechat :nianhuaiju
# @File :v2ex-hot.py
# @Software :PyCharm Community Edition

import requests
from bs4 import BeautifulSoup

url = 'https://www.v2ex.com/'
headers = {'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36'}

def get_hot_url():
soup = url_set(url)
for topic in soup.find_all('span', class_="item_hot_topic_title"):
print(topic.text)
printstar(50)

def printstar(num):
print '*' * num

def url_set(url_):
soup = BeautifulSoup(requests.get(url_, headers=headers).text, 'html.parser')
return soup

if __name__ == '__main__':
printstar(100)
get_hot_url()

 

运行

在命令行中输入

python v2ex-hot.py

预期结果

如果一切正常,那么应该可以看到类似下面的结果,由于每天的热门主题不一样,所以内容是会变化的

****************************************************************************************************
后端工程师不会手写 sql,可以接受不?
它可能是史上效率最高的 [应用启动器] !
有创业的想法,一定要先成立公司。
「新一线城市」到底是抢人大战还是卖房大战
萌新问个逗逼问题:
对于公司爱找事儿的同事该如何对待呢?
一周内三个百度贴吧账号被永封
各位床产生的灰尘都是怎么解决的?
你们睡觉的时候,腰会碰到床吗。。。我感觉要垫个东西,不然好难受啊
现在还有人用 GDB 么?
**************************************************

 

几个要点

  • ​for span in soup.find_all('span', class_='item_hot_topic_title')​​​: 遍历所有的class=item_hot_topic_title的span。注意是​​class_​​,不是​​class​​,因为class是python的关键字,所以后面要加个尾巴,防止冲突
  • ​span.find('a').text​​:层级遍历,先找到span,再从span下找到a,这是常用套路
  • ​span.find('a')['href']​​​:获取href属性,在bs4里,我们可以通过​​[attribute_name]​​的方式来获取元素的属性

阅读内容

BeautifulSoup

  • ​​find_all​​
  • ​​find​​
  • ​​css_selector​​
  • ​​attributes​​

 


赠人玫瑰
手留余香

我们曾如此渴望命运的波澜,到最后才发现:人生最曼妙的风景,竟是内心的淡定与从容……我们曾如此期盼外界的认可,到最后才知道:世界是自己的,与他人毫无关系!-杨绛先生

如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】按钮。
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【关注我】。



举报

相关推荐

0 条评论