第一个爬虫

import requests
import pandas as pd
from bs4 import BeautifulSoup
import json
import pandas

def comments(newsurl): #获取评论信息
    commentsurl = ‘http://comment5.news.sina.com.cn/page/info?version=1&format=js&channel=gn&newsid=comos-{}&group=&compress=0&ie=utf-8&oe=utf-8&page=1&page_size=20‘
    x = newsurl.split(‘/‘)[-1].lstrip(‘doc-i‘).rstrip(‘.shtml‘)
    jd = json.loads(requests.get(commentsurl.format(x)).text.strip(‘var data=‘))
    return jd[‘result‘][‘count‘][‘total‘]

def getNewsDetail(newsurl): #获取新闻内容
    result = {}
    sample = requests.get(newsurl)
    sample.encoding = ‘utf-8‘
    soup = BeautifulSoup(sample.text,‘html.parser‘)
    result[‘title‘] = soup.select(‘.page-header‘)[0].text
    result[‘dt‘] = soup.select(‘.time-source‘)[0].contents[0].strip()
    result[‘article‘] = ‘     ‘.join([p.text.strip() for p in soup.select(‘#artibody p‘)[0:-1]])
    result[‘resouce‘] = soup.select(‘.time-source‘)[0].contents[1].text
    result[‘editor‘] = soup.select(‘.article-editor‘)[0].text.lstrip(‘责任编辑:‘)
    result[‘comments‘] = comments(newsurl)
    return result

def getnews(url): #获取主页面新闻连接
    url.encoding=‘utf-8‘
    alllist = []
    soup = BeautifulSoup(url.text,‘html.parser‘)
    for a in soup.select(‘.news-item‘):
        if len(a.select(‘h2‘)) > 0:
            newsurl = a.select(‘a‘)[0][‘href‘]
            alllist.append(getNewsDetail(newsurl))
            df = pandas.DataFrame(alllist)
            df.to_excel(‘news.xlsx‘,sheet_name=‘Random Data‘) #导出数据到excel中

url = requests.get(‘http://news.sina.com.cn/china/‘)
getnews(url)  #新浪国内新闻

----------------------------------------------------------------------------------------------------------------------------------------------
将主页面通过get方法拿到--通过BeautifulSoup进行剖析--利用开发者工具找出标题、内文、编辑、评论等信息所在位置--利用BeautifulSoup中的select方法对所需信息进行提取,并且

存入字典resul{}中--通过循环将每则新闻信息append到最后的列表alllist--使用pandas函数、DataFrame方法将列表整理,最终导出为excel表格


				
时间: 2024-10-12 14:36:03

第一个爬虫的相关文章

Python项目之我的第一个爬虫----爬取豆瓣图书网,统计图书数量

今天,花了一个晚上的时间边学边做,搞出了我的第一个爬虫.学习Python有两个月了,期间断断续续,但是始终放弃,今天搞了一个小项目,有种丰收的喜悦.废话不说了,直接附上我的全部代码. 1 # -*- coding:utf-8 -*- 2 __author__ = 'Young' 3 4 import re,urllib #urllib : 网页访问,返回网页的数据.内容 5 def my_get(ID):# 封装成函数方便调用 6 html = urllib.urlopen("https://r

[转载]网络爬虫(12):爬虫框架Scrapy的第一个爬虫示例入门教程

我们使用dmoz.org这个网站来作为小抓抓一展身手的对象. 首先先要回答一个问题. 问:把网站装进爬虫里,总共分几步? 答案很简单,四步: 新建项目 (Project):新建一个新的爬虫项目 明确目标(Items):明确你想要抓取的目标 制作爬虫(Spider):制作爬虫开始爬取网页 存储内容(Pipeline):设计管道存储爬取内容 好的,基本流程既然确定了,那接下来就一步一步的完成就可以了. 1.新建项目(Project) 在空目录下按住Shift键右击,选择“在此处打开命令窗口”,输入一

python爬虫__第一个爬虫程序

前言 机缘巧合,最近在学习机器学习实战, 本来要用python来做实验和开发环境 得到一个需求,要爬取大众点评中的一些商户信息, 于是开启了我的第一个爬虫的编写,里面有好多心酸,主要是第一次. 我的文章有幸被你看到的话,如果你也是个初学者,希望能让你也学习到一些东西,下面是干货. 需求: 环境: 1.windows 7 +python2.7.3+BeautifulSoup包 2.BeautifulSoup是用的最新版,4.x的,在bs4的包中,直接用pip install BeautifulSo

我的第一个爬虫

刚好把Python基础篇看完了,发现还是有很多没看懂滴!就想试试写第一个非常简单的爬虫来感受一下 爬虫也就是爬网页的意思,其实就是根据Url来获取它的网页信息,虽然在我们的浏览器看着是排版非常优美.明确.简单的画面,但其实是由伟大的浏览器解释才呈现出来滴,实际上它是一段HTML代码和Java Script.CSS而已 如果把网页比作成一个人,那么HTML则是人的骨架,Java Script则是人身上的各个地方的肌肉,CSS则是它的衣服.裤子.鞋子.所以最重要部分在于HTML(骨架) 在日常上网浏

第一个爬虫:爬糗事百科笑话

前排提示: Python 3.5 没有分布式队列,没有查重,没有Scrapy-Redis框架,没有效率 参考资料(前排拜谢); 网友静觅 CSDN专栏 Jecvay Notes 知乎大神,言简意赅 第一步:能爬就行 import urllib import urllib.request url = "http://news.dbanotes.net" html = urllib.request.urlopen(url) data = html.read().decode('UTF-8'

《C# 爬虫 破境之道》:第一境 爬虫原理 — 第一节:整体思路

在构建本章节内容的时候,笔者也在想一个问题,究竟什么样的采集器框架,才能算得上是一个“全能”的呢?就我自己以往项目经历而言,可以归纳以下几个大的分类: 根据通讯协议:HTTP的.HTTPS的.TCP的.UDP的: 根据数据类型:纯文本的.json的.压缩包的.图片的.视频的: 根据更新周期:不定期更新的.定期更新的.增量更新的: 根据数据来源:单一数据源.多重数据源.多重数据源混合: 根据采集点分布:单机的,集群的: 根据反爬虫策略:控制频率的,使用代理的,使用特定UA的: 根据配置:可配置的,

《C# 爬虫 破境之道》:第一境 爬虫原理 — 第二节:WebRequest

本节主要来介绍一下,在C#中制造爬虫,最为常见.常用.实用的基础类 ------ WebRequest.WebResponse. 先来看一个示例 [1.2.1]: 1 using System; 2 using System.IO; 3 using System.Net; 4 using System.Text; 5 6 class Program 7 { 8 static void Main(string[] args) 9 { 10 var request = WebRequest.Crea

《C# 爬虫 破境之道》:第一境 爬虫原理 — 第五节:数据流处理的那些事儿

为什么说到数据流了呢,因为上一节中介绍了一下异步发送请求.同样,在数据流的处理上,C#也为我们提供几个有用的异步处理方法.而且,爬虫这生物,处理数据流是基础本能,比较重要.本着这个原则,就聊一聊吧. 我们经常使用到的流有文件流.内存流.网络流,爬虫与这三种流都有着密不可分的联系,可以联想以下这些场景: 当我们采集的数据,是一个压缩包或者照片,那么要存储它们到硬盘上,就需要使用到文件流了: 当我们采集的数据,是经过GZip等压缩算法压缩过的,那么要解压它,就需要使用到内存流了: 当我们的爬虫运行起

python-入门的第一个爬虫例子

前言: 此文为大家入门爬虫来做一次简单的例子,让大家更直观的来了解爬虫. 本次我们利用 Requests 和正则表达式来抓取豆瓣电影的相关内容. 一.本次目标: 我们要提取出豆瓣电影-正在上映电影名称.评分.图片的信息,提取的站点 URL 为:https://movie.douban.com/cinema/nowplaying/beijing/,提取的结果我们以文件形式保存下来. 二.准备工作 确保已经正确安装 Requests 库,无论是 Windows.Linux 还是 Mac,都可以通过

htmlunit第一个爬虫演示 目标网址http://ent.sina.com.cn/film/

基本都要放弃了 springmvc 配置了htmlunit之后无法运行,都不能正常实例化webclient,但是突然想起来用maven应用程序测试一下 结果竟然就可以了.好吧,还是有希望的 大佬博客https://www.cnblogs.com/davidwang456/articles/8693050.html main方法中 public static void main(String[] args) { final WebClient webClient = new WebClient(B