爬取网易的新闻网站全函数

来源:互联网 发布:librosa有c语言版本吗 编辑:程序博客网 时间:2024/06/09 16:07

因为初期没有考虑到网易的新闻界面会有很多图片或者视频新闻,所以有时候抓取内文并不成功。


解决方案:

  • 通过正则表达式进行过滤网站URL(观察视频、图片的新闻在URL都有所体现),但是目前并不知道Python有没有类似于PHP的正则表达式过滤函数
  • 通过对网页内容的分析判断是否可抓取
  • 在首页进行筛取,筛除不合适的div或者li里面的新闻,找寻文字新闻统一界面
  • 爬取m.163.com页面应该会简单一些
#爬虫初始化函数def init():    import requests    from bs4 import BeautifulSoup    import json    import re#163门户网站抓取函数def MainPage(url):    Result = []    res = BeautifulSoup((requests.get(url)).text,'html.parser')    for Res in res.select('.cm_fb'):        #Result.append(Res.select('a')[0].text)        Result.append(Res.select('a')[0]['href'])    return Result#163网站内文抓取函数def News(newsurl):    result = {}    news = BeautifulSoup((requests.get(newsurl)).text,'html.parser')    result['title'] = news.select('h1')[0].text    result['time'] = news.select('.post_time_source')[0].contents[0].rstrip('\u3000来源: ')    result['article'] = news.select('.post_text')[0].text    return result#综合函数调出内容def fun(url):    for newurl in MainPage(url):        News(newurl)init()fun('http://www.163.com/')
原创粉丝点击