本期为python爬虫实践的第十节,传送门:
python
通过上一期教程的代码,我们已经可以抓取到凤凰网汽车频道的资讯列表。本期教程,我们接着上一期的代码,去进一步获取资讯的详细内容。
资讯列表信息
之前的代码,我们已经可以拿到资讯的标题和详情页的链接地址,我们进而通过已经获取的地址,去抓取详情页内容。首先我们需要打开详情页,用我们多次提到的分析方法,去分析整个页面的结构,看一下,我们想要的信息都在哪里,可以通过哪些特殊的标志,进行区分。打开开发者工具,分析截图如下。
分析截图
应该说这个页面的分析还是很简单,开发人员在页面的html中,加有注释,文章内容的位置非常容易得到。我们对之前的代码进行改造。
from bs4 import BeautifulSoup
headers = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36'
res = requests.get('https://auto.ifeng.com/quanbu/', headers)
res.encoding = 'utf-8'
soup = BeautifulSoup(res.text, 'html.parser')
news_list = soup.findAll('div', {'class': 'imgtit'})
for news in news_list:
soup_news = BeautifulSoup(str(news), 'html.parser')
news_link = soup_news.a['href']
news_title = soup_news.a.string
# 根据链接获取资讯详情
news_res = requests.get(news_link)
news_res.encoding = 'utf-8'
news_soup = BeautifulSoup(news_res.text, 'html.parser')
news_content = news_soup.find('div', {'class': 'arl-c-txt'})
print('标题:' + news_title)
print('资讯内容:')
print(news_content)
print('======================')
print('======================')
代码截图
抓取到的资讯内容
经过10期的图文教程,相信大家已经对python的网络爬虫技术有了一定的了解,感兴趣的朋友一定要多练习。后面小编还会继续更新一些相关的知识,喜欢的朋友,记得点击关注,也可以评论区留言讨论。