logo资料库

爬虫之爬取新闻列表.pdf

第1页 / 共2页
第2页 / 共2页
资料共2页,全文预览结束
爬虫之爬取新闻列表 爬虫之爬取新闻列表 爬取标题-链接链接-时间时间 爬取标题 很久前就尝试了爬虫学习,但是一直没有怎么去实际工作中使用过,这段时间工作上的事也稍微少了点,就来写写爬虫的东西** 本次使用的模块: BeautifulSoup4,requests 可以看到,新闻的链接为: https://news.sina.com.cn/world/ 而且使用的是get方法 在源码中观察到,新闻有一个class属性为’news-item’ 所以,可以通过该属性找到下面我们所需要的 import requests from bs4 import BeautifulSoup res = requests.get('https://news.sina.com.cn/world/') res.encoding='utf-8' # print(res.text) #soup为列表形式,内容存放在soup中, soup = BeautifulSoup(res.text,'html.parser') # 查找class值为news-item的元素内容 new_itme = soup.select('.news-item') for news in new_itme: print(news) 结果中可以看到,news中包含了很多标签等多余的东西,所以需要去掉这些, #标题文字在h2标签下,使用[0]去掉中括号,筛选出标题文字 character = news.select('h2')[0].text #链接在a标签下,同理,获取href的值 link = news.select('a')[0]['href'] #筛选出class为值为time的,拿到时间 time = news.select('.time')[0].text 且在取出标签时,发现有的值为空,所以加载判断一下: #因为获取的内容有标签等不需要的东西,所有去掉,根据观察所得:链接存在
a标签下标签下 if len(news.select('h2')) > 0: # if news.select('h2') != []: #文字在文字在h2下面:下面: character = news.select('h2')[0].text link = news.select('a')[0]['href'] time = news.select('.time')[0].text 完整获取到新闻标题-链接-时间代码如下: import requests from bs4 import BeautifulSoup res = requests.get('https://news.sina.com.cn/world/') res.encoding='utf-8' # print(res.text) soup = BeautifulSoup(res.text,'html.parser') # 查找class值为news-item的元素内容 new_itme = soup.select('.news-item') for news in new_itme: # print(news) #因为获取的内容有标签等不需要的东西,所有去掉,根据观察所得:链接存在 a标签下标签下 if len(news.select('h2')) > 0: # if news.select('h2') != []: #文字在文字在h2下面:下面: character = news.select('h2')[0].text link = news.select('a')[0]['href'] time = news.select('.time')[0].text print(character,':',link,time) 最后,我们把抓取的东西放入excel中,以下是添加了excel的完整代码: import requests from bs4 import BeautifulSoup import os from openpyxl import workbook from openpyxl import load_workbook res = requests.get('https://news.sina.com.cn/world/') res.encoding='utf-8' # print(res.text) soup = BeautifulSoup(res.text,'html.parser') # 查找class值为news-item的元素内容 new_itme = soup.select('.news-item') if os.path.exists('新浪.xlsx') == False: wb = workbook.Workbook() # 创建一个excel用来保存抓取的内容 wb.create_sheet('新浪国际新闻') wb.save('新浪.xlsx') wb.close() wb = load_workbook('新浪.xlsx') #打开工作簿 sheet = wb['新浪国际新闻'] row = 0 #设置初始行数 for news in new_itme: # print(news) #因为获取的内容有标签等不需要的东西,所有去掉,根据观察所得:链接存在 a标签下标签下 if len(news.select('h2')) > 0: row += 1 # if news.select('h2') != []: #文字在文字在h2下面:下面: character = news.select('h2')[0].text link = news.select('a')[0]['href'] time = news.select('.time')[0].text sheet.cell(row,1).value = character sheet.cell(row,2).value = link sheet.cell(row,3).value = time wb.save('新浪新浪.xlsx') wb.close() 结果图我就不放了,,大家可以自己试试,结果图会变 作者:saber_sss
分享到:
收藏