爬取新聞列表
阿新 • • 發佈:2017-10-11
所有 部門 parser rom .gz nco sele clas int
- 獲取單條新聞的#標題#鏈接#時間#來源#內容 #點擊次數,並包裝成一個函數。
- 獲取一個新聞列表頁的所有新聞的上述詳情,並包裝成一個函數。
- 獲取所有新聞列表頁的網址,調用上述函數。
- 完成所有校園新聞的爬取工作。
import requests import re from bs4 import BeautifulSoup url=‘http://news.gzcc.cn/html/xiaoyuanxinwen/‘ res=requests.get(url) res.encoding=‘utf-8‘ soup=BeautifulSoup(res.text,‘html.parser‘) li=soup.select(‘
select(‘
- 完成自己所選其他主題相應數據的爬取工作。
import requests import re from bs4 import BeautifulSoup url=‘http://news.szu.edu.cn/xyxw/sdyw.htm‘ res=requests.get(url) res.encoding=‘utf-8‘ soup=BeautifulSoup(res.text,‘html.parser‘) li=soup.select(‘li‘) def get(shenda): dj=re.search(‘_.*/(.*).htm‘,shenda).groups(0)[0] djcs=int(requests.get(‘http://news.szu.edu.cn/info/1003/{}.htm‘.format(dj)).text.split(‘.‘)[-1].lstrip("html(‘").rstrip("‘);")) return djcs def sd(label): for news in label: if len(news.select(‘._blank‘))>0: title=news.select(‘._blank‘)[0].text time=news.select(‘._blank‘).contents[0].text url1=news.select(‘a‘) cs=get(url1) print(time,title,url,cs) sd(li) pages=int(soup.select(‘.left‘)[0].text.rstrip(‘條‘))//10+1 for list in range(2,pages+1): pageurl="http://news.szu.edu.cn/xyxw/sdyw/{}.htm".format(list) pageres=requests.get(pageurl) pageres.encoding=‘utf-8‘ pagesoup=BeautifulSoup(pageres.text,‘html.parser‘) pagelist=pagesoup.select(‘li‘) sd(pagelist) break
爬取新聞列表