|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
求大神给个指点!!!小女子先谢谢了!!
问题:现在在百度新闻网站中,按关键字搜索2011.1.1至2015.12.31的新闻列表,一共27页。抓取新闻的标题、时间、媒体来源和新闻的链接。代码如下:
- import requests
- from bs4 import BeautifulSoup
- from datetime import datetime
- import pandas
- import re
- data=[]
- date=[]
- media=[]
- title=[]
- link=[]
- for k in range(1,28):
- newsurl='http://news.baidu.com/ns?word=南玻集团, 南玻A, 中国南玻集团股份有限公司&pn=%s&cl=2&ct=0&tn=news&rn=20&ie=utf-8&bt=1293811200&et=1451577599'%((k-1)*20)
-
- kv={"User-Agent":"Mozilla/5.0 "}
- res=requests.get(newsurl,headers=kv)
- res.encoding='utf-8'
- soup=BeautifulSoup(res.text,'html.parser')
- for i in range(20):
- news=soup.find_all( 'div', { 'class', 'result'})[i]
-
- h3=news.find( name= "a", attrs={ "target": re.compile( "_blank")})#取出每则新闻的标题
- title.append(h3.text)
-
- m=news.find( name= "p", attrs={ "class": re.compile( "c-author")})#取出每则新闻的发布媒体
- m1=m.text.split()[0]
- media.append(m1)
-
- t=m.text.split()[1]#取出每则新闻的发布时间
- dt=datetime.strptime(t,'%Y年%m月%d日')
- d=dt.strftime('%Y-%m-%d')
- date.append(d)
-
- href=news.h3.a['href']
- link.append(href)
-
- data.append((date[i], title[i], media[i],link[i]))
- print("第" + str(k) + "页完成")
-
- df=pandas.DataFrame(data)
- df.to_excel('news.xlsx')
复制代码
执行的结果就是将新闻列表第一页重复27次。
求大神指点,该如何解决这个问题。 |
|