未来属于那些仍然愿意弄脏双手的少数分子。

网络爬虫笔记之运用BeautifulSoup爬取知乎“发现”页面的“热门话题”部分

1、获取网页源代码

《网络爬虫笔记之运用BeautifulSoup爬取知乎“发现”页面的“热门话题”部分》

可得到如下结果:

《网络爬虫笔记之运用BeautifulSoup爬取知乎“发现”页面的“热门话题”部分》

2、提取“热门话题”中“问题、作者、回答”等所在节点

《网络爬虫笔记之运用BeautifulSoup爬取知乎“发现”页面的“热门话题”部分》

首先对网页源代码进行定位分析,可发现要提取的内容在class=’explore-feed feed-item’的div节点,运用select()方法进行提取。

注意:运用select()方法得到的结果是一个列表,但其内的元素类型仍未Tag类型,所以可以利用for循环进行嵌套选择。同时find_all()的返回结果也是一个列表。

《网络爬虫笔记之运用BeautifulSoup爬取知乎“发现”页面的“热门话题”部分》

3.提取问题、作者、回答的信息

《网络爬虫笔记之运用BeautifulSoup爬取知乎“发现”页面的“热门话题”部分》

由图可知“问题”在h2节点,可直接运用节点选择器的方法提取其文本,即item.h2.string

《网络爬虫笔记之运用BeautifulSoup爬取知乎“发现”页面的“热门话题”部分》

“作者”在class=’author-link’的a节点,运用find()方法提取其文本,即item.find(class_=’author-link’,因为class为关键字,所以后面要加一个下划线。

《网络爬虫笔记之运用BeautifulSoup爬取知乎“发现”页面的“热门话题”部分》

同理可用find()方法提取“答案”所在文本。

代码如下:

《网络爬虫笔记之运用BeautifulSoup爬取知乎“发现”页面的“热门话题”部分》
点赞

发表评论

电子邮件地址不会被公开。

3 + 16 =