百度新闻结果爬虫
1. 获取新闻结果页面内容
在百度新闻搜索“清华大学”,得到页面图如下:
#百度新闻搜索--清华大学
#获取对应页面的所有相关信息
import requests
from bs4 import BeautifulSoup as BS
headers={
'user-agent':'xxxxxx',
'cookies':'XXXX'}#headers内容自行修改
url='https://www.baidu.com/s?ie=utf-8&medium=0&rtt=1&bsst=1&rsv_dl=news_t_sk&cl=2&wd=%E6%B8%85%E5%8D%8E%E5%A4%A7%E5%AD%A6&tn=news&rsv_bp=1&rsv_sug3=26&rsv_sug1=20&rsv_sug7=101&oq=&rsv_sug2=0&rsv_btype=t&f=8&inputT=8176&rsv_sug4=8910'
r=requests.get(url,headers=headers).text
#print(r)
soup=BS(r,'lxml')
#print(soup)
results=soup.find_all(class_='result-op c-container xpath-log new-pmd')
结果如下(可以通过浏览器“检查”源代码对比):
2. 解析得到新闻链接地址
使用beautiful soup库来解析
因为想要获取具体每条新闻的内容,所以需要对应每条新闻的链接
#获取页面中所有新闻具体页面的链接(以第一页百度结果为例)
for item in results:
#print(type(item))
#print(item)
temp=item.find_all(class_='c-span-last c-span9')
for j in temp:
print(type(j))
s=j.find(name='a')
#print(s)
#print(type(s))
link=j.find(name='a').attrs[