您的位置:首页 >新闻资讯 > 正文

抓取网易新闻内容教程解析

来源:互联网 作者:admin 时间:2019-11-28 14:36:37

  如果我们想要抓取网易新闻上面的信息,要怎么用代理IP设置代码呢?首先我们要知道网页上面的内容组成部分的相应规则,然后找到合适的方法去开展。

抓取网易新闻内容教程解析

  网易新闻:


  网易新闻的标题及内容是使用js异步加载的,单纯的下载网页源代码是没有标题及内容的,我们可以在Network的js中找到我们需要的内容,这里我使用了正则表达式来获取我们需要的标题及其链接,并使用了BeautifulSoup来获取相应标题的内容。


  import re


  from urllib import request


  from bs4 import BeautifulSoup


  def download(title, url):


  req = request.urlopen(url)


  res = req.read()


  soup = BeautifulSoup(res,'lxml')


  #print(soup.prettify())


  tag = soup.find('div',class_='post_text')


  #print(tag.get_text())


  title = title.replace(':','')


  title = title.replace('"','')


  title = title.replace('|','')


  title = title.replace('/','')


  title = title.replace('\\','')


  title = title.replace('*','')


  title = title.replace('<','')


  title = title.replace('>','')


  title = title.replace('?','')


  #print(title)


  file_name = r'D:\code\python\spider_news\NetEase_news\sociaty\\' +title + '.txt'


  file = open(file_name,'w',encoding = 'utf-8')


  file.write(tag.get_text())


  if __name__ == '__main__':


  urls = ['http://temp.163.com/special/00804KVA/cm_shehui.js?callback=data_callback',


  'http://temp.163.com/special/00804KVA/cm_shehui_02.js?callback=data_callback',


  'http://temp.163.com/special/00804KVA/cm_shehui_03.js?callback=data_callback']


  for url in urls:


  #url = 'http://temp.163.com/special/00804KVA/cm_shehui_02.js?callback=data_callback'


  req = request.urlopen(url)


  res = req.read().decode('gbk')


  #print(res)


  pat1 = r'"title":"(.*?)",'


  pat2 = r'"tlink":"(.*?)",'


  m1 = re.findall(pat1,res)


  news_title = []


  for i in m1:


  news_title.append(i)


  m2 = re.findall(pat2,res)


  news_url = []


  for j in m2:


  news_url.append(j)


  for i in range(0,len(news_url)):


  #print(news_title[i],news_body[i])


  download(news_title[i],news_url[i])


  print('正在爬取第' + str(i) + '个新闻',news_title[i])


  以上就是ET代理带来爬取网易新闻网站的教程介绍,希望能够对各位学习爬虫的用户有所启发。


相关文章内容简介