`
mushme
  • 浏览: 788489 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

python数据抓取

 
阅读更多
经过折腾,python果然是数据抓取的利器。
火车头类的东西,以后我怕是用不上了,用python自己写,速度快而且透明。
数据抓取的大概步骤
1.抓取列表页面链接
2.根据链接,抓取内容,并保存到数据库

以下是cnblog的新闻为例,使用sqlite做数据库(python内置的,当然是首选的)
1.getnewsList.py
# -*- coding:utf-8 -*-

from bs4 import BeautifulSoup
import urllib.request
from urllib import request
# 导入SQLite驱动:
import sqlite3



def saveNews(newsLink,newsTitle=None):
    if newsTitle is None:
	    newsTitle=""
    conn = sqlite3.connect('news.db')
    cursor = conn.cursor()
    # 执行一条SQL语句,创建user表:
    cursor.execute('create table IF NOT EXISTS news (id INTEGER PRIMARY KEY, title varchar(100),link vachar(100),content text,status Integer)')
    cursor.execute('select * from news where link=\''+newsLink+'\'')
    values=cursor.fetchall()
    if len(values) > 0:#链接以前就存在
        print('链接已经存在:'+newsLink)
    else:
        cursor.execute('insert into news (title, link,status) values (\''+newsTitle+'\', \''+newsLink+'\',0)')
        print("save success."+newsTitle+":"+newsLink)    
# 关闭Cursor:
    cursor.close()
# 提交事务:
    conn.commit()
# 关闭Connection:
    conn.close()
	
def readNews():
    conn = sqlite3.connect('news.db')
    cursor = conn.cursor()
    cursor.execute('select * from news')
    values = cursor.fetchall()
    #print(values)
    cursor.close()
    conn.close()

	
#1.获取页面内容html
with request.urlopen('http://news.cnblogs.com/') as f:
    html_doc=f.read()
	
#2.分析页面内容,获取标题内容和链接[格式如下]
#<h2 class="news_entry">
#	<a href="/n/535728/" target="_blank">传Windows 10 Mobile Build 11088下月初发布</a>
#</h2>
soup = BeautifulSoup(html_doc,"html.parser")
news_array=soup.find_all('h2', {'class': 'news_entry'})
for news in news_array:
    #print(news.a.get("href"))#获取链接
    #print(news.a.string)#获取标题
    saveNews("http://news.cnblogs.com"+news.a.get("href"),news.a.string)
    
#readNews()


2.getnewsContent.py
# -*- coding:utf-8 -*-

from bs4 import BeautifulSoup
import urllib.request
from urllib import request
# 导入SQLite驱动:
import sqlite3

	
def updateNewsContent():
    conn = sqlite3.connect('news.db')
    cursor = conn.cursor()
    cursor.execute('select * from news where status=0')
    values = cursor.fetchall()
    
    for line in values:
        id=line[0]
        link=line[2]
        content=getNewsContent(link)
        cursor.execute('update news set content=?,status=1 where id=?',(content, id))
    cursor.close()
    conn.commit()
    conn.close()

#根据链接获取内容
def getNewsContent(newsLink):
    #1.获取页面内容html
    with request.urlopen(newsLink) as f:
        html_doc=f.read()
        
    #2.分析页面内容,获取内容
    soup = BeautifulSoup(html_doc,"html.parser")
    news_content=soup.find('div', {'id': 'news_body'})
    s=news_content.contents
    text=''
    for x in s:
        text=text+str(x)
    return text

#将所有没有内容的新闻,抓取一下,将内容填充进去
updateNewsContent()
分享到:
评论

相关推荐

    Python数据抓取技术与实战.pdf

    由于提供的文件信息中并没有具体的Python数据抓取技术与实战内容,我无法生成具体的技术知识点。但是,我可以根据标题“Python数据抓取技术与实战.pdf”来构建一些关于Python数据抓取的基础知识点和实战技巧。 知识...

    Python数据抓取技术与实战.zip

    Python数据抓取技术是互联网时代获取大量有价值信息的重要手段,尤其在数据分析、研究以及网站维护等领域,Python以其简洁明了的语法和丰富的第三方库成为首选工具。本资料包"Python数据抓取技术与实战"旨在深入浅出...

    基于ssm开发的电力大数据,hadoop+python数据抓取.zip

    标题 "基于ssm开发的电力大数据,hadoop+python数据抓取.zip" 暗示了这个项目是关于使用SSM(Spring、SpringMVC、MyBatis)框架开发的一个电力大数据应用,其中包含了Hadoop和Python在数据抓取方面的实践。...

    Python数据抓取与保存

    python实现网页数据采集python实现网页数据采集python实现网页数据采集python实现网页数据采集

    python数据抓取分析的示例代码(python + mongodb)

    本文介绍了Python数据抓取分析,分享给大家,具体如下: 编程模块:requests,lxml,pymongo,time,BeautifulSoup 首先获取所有产品的分类网址: def step(): try: headers = { 。。。。。 } r = requests.get...

    Python网络爬虫项目开发实战_数据抓取_编程案例解析实例详解课程教程.pdf

    在实际的网页数据抓取过程中,课程将介绍三种主要方法: 1. **正则表达式(Regular Expressions)**:正则表达式是一种强大的文本处理工具,可以用来匹配、查找、替换符合特定模式的字符串。在网页抓取中,我们可以...

    Python-游戏协议数据抓取解析工具

    本文将深入探讨一个基于Python的游戏协议数据抓取解析工具,该工具利用了wxWidgets、pywin32和WinPcap库来实现其功能。让我们逐一了解这些关键组件。 首先,`wxWidgets` 是一个跨平台的GUI工具包,用于帮助开发者...

    Python网页数据抓取以及表格的制作

    在IT行业中,Python语言因其简洁明了的语法和强大的库支持而被广泛应用于网页数据抓取和数据分析领域。本主题将深入探讨如何使用Python进行网页数据抓取,并介绍如何利用这些数据创建表格,同时涉及CSS文件的生成和...

    python数据抓取工具:图片批量下载工具

    不会用可以留言咨询

    Scrapee:Python 数据抓取

    **Python 数据抓取:Scrapee 框架详解** 数据抓取,也称为网络爬虫,是获取互联网上公开信息的重要技术。Python 作为一门功能强大且易学的编程语言,非常适合进行数据抓取。在众多 Python 爬虫框架中,Scrapee 是一...

    python爬虫抓取网页数据大作业项目代码.zip

    python爬虫抓取网页数据大作业项目代码.zippython爬虫抓取网页数据大作业项目代码.zippython爬虫抓取网页数据大作业项目代码.zippython爬虫抓取网页数据大作业项目代码.zippython爬虫抓取网页数据大作业项目代码....

    Python爬虫抓取2017-2019年上海天气数据

    在这个案例中,我们讨论的是如何使用Python来抓取2345天气网站上的上海2017年至2019年的天气历史数据。这样的任务对于数据分析、研究或者监控特定地区的气候模式都非常有用。 首先,我们需要了解Python中的几个关键...

    Python抓取京东数据

    ### Python抓取京东数据知识点详解 #### 一、项目背景与目标 本项目旨在通过Python爬虫技术抓取京东网站的商品评论数据,并将其存储至MySQL数据库中,方便后续的数据分析和挖掘工作。该项目重点关注京东图书商品的...

    Python网页抓取讲解.pptx

    Python 网页抓取是指使用 Python 语言从互联网上抓取数据的过程。该技术广泛应用于数据挖掘、机器学习、自然语言处理等领域。下面是 Python 网页抓取的详细讲解: 一、为什么需要网页抓取 网页抓取可以帮助我们从...

    Python网络数据爬虫抓取代码

    Python网络数据抓取代码主要涉及Python爬虫技术,可以用于自动化采集网络上的数据,如网页内容、图片、视频、音频等。这些数据可以用于数据分析、机器学习、自然语言处理等多个领域。 适用人群: Python网络数据...

    python爬虫,如何抓取网页数据

    python爬虫,如何抓取网页数据; python爬虫,如何抓取网页数据; python爬虫,如何抓取网页数据; python爬虫,如何抓取网页数据; python爬虫,如何抓取网页数据; python爬虫,如何抓取网页数据; python爬虫,...

    PYTHON网络抓取数据应用

    标题“PYTHON网络抓取数据应用”揭示了本次学习的主题,主要关注如何利用Python进行网络数据抓取,特别是在淘宝网站上获取商品数据。Python作为一种强大的编程语言,因其丰富的库支持和简洁的语法,常被用于网络爬虫...

    基于python抓取豆瓣电影TOP250的数据及进行分析.pdf

    本篇文档《基于python抓取豆瓣电影TOP250的数据及进行分析.pdf》首先强调了Python语言在数据分析、数据抓取和数据清洗等领域的应用,指出Python作为一门入门简单、应用广泛的编程语言,它的数据包和框架也越来越成熟...

    python编写的淘宝数据抓取工具

    Python 编写的淘宝数据抓取工具是利用编程语言Python结合Scrapy框架来实现的一款高效、自动化的网络数据采集工具。Scrapy是一个强大的Python爬虫框架,适用于构建复杂的爬虫项目,能够快速地从网页中抓取所需信息。...

Global site tag (gtag.js) - Google Analytics