利用python的爬虫功能进行信息爬取,关键在于源码分析,代码相对简单。
1 源代码分析
访问网站,按下F12,进行元素查找分析。
2 代码实现
from requests import get
from bs4 import BeautifulSoupdef getXhuNews(pageNum=1):"""获取西华大学新闻信息"""url="http://news.xhu.edu.cn/zhxw/list%d.htm"%(pageNum)print(url)response=get(url)if (response.status_code==200):print("顺利获取数据")else:print("目的网站无法连接")exit();response.encoding = 'utf8'html=response.textsoup=BeautifulSoup(html,"html.parser")#myTitle=soup.select(".news_title") #根据class查找结点(会找出太多的div)myTitle=soup.find_all("div",{"id":"wp_news_w6"}) #根据div的id查找结点soup = BeautifulSoup(str(myTitle),"html.parser") #重新构造soupmyTitle=soup.select(".news_title") #根据class查找结点(会找出太多的div) myDate=soup.select(".news_meta") #根据class查找结点print("第%d页"%pageNum," ",len(myTitle),"条新闻")listDate=[] #存储日期listTitle=[] #存储标题listHref=[] #存储连接for i in myTitle:soup = BeautifulSoup(str(i),"html.parser") #重新构造soups=soup.select("a") #根据标签获取结点for x in s:listHref.append(x["href"]) #获取结点属性值listTitle.append(x.getText()) #获取属性文本for i in myDate:soup = BeautifulSoup(str(i),"html.parser") #重新构造soups=soup.select("span") #根据标签获取结点for x in s:listDate.append(x.getText()) #获取属性文本#写入文件fileName="text%05d.txt"%(pageNum)f=open(fileName,"w",encoding="utf8")for i in range(len(listDate)):str2="%04d"%(i+1)+" "+listDate[i]+" "+listHref[i]+" "+listTitle[i]+"\n"f.write(str2)f.close()#----------使用样例---------------------------------
for i in range(40,50):getXhuNews(i)