精华内容
参与话题
问答
  • 爬数据

    2017-01-05 10:52:56
    爬数据 1 首先安装一个chrome 的浏览器  http://103.254.64.34:9999/sw.bos.baidu.com/sw-search-sp/software/13d93a08a2990/ChromeStandalone_55.0.2883.87_Setup.exe

    爬数据

    1 首先安装一个chrome 的浏览器

        http://103.254.64.34:9999/sw.bos.baidu.com/sw-search-sp/software/13d93a08a2990/ChromeStandalone_55.0.2883.87_Setup.exe

    展开全文
  • 在上一篇当中呢,python3爬虫系列08之新版动态智联爬虫,我们已经把智联招聘的某地区,某岗位,某页数的所有数据爬下来了,然后保存为了一个text文件。 这一篇呢,我们说说把数据存入数据库的操作,毕竟真的项目爬虫...

    python3爬虫系列09之爬虫数据存入MySQL数据库

    1. 前言

    在上一篇当中呢,python3爬虫系列08之新版动态智联爬虫,我们已经把智联招聘的某地区,某岗位,某页数的所有数据爬下来了,然后保存为了一个text文件。

    这一篇呢,我们说说把数据存入数据库的操作,毕竟真的项目爬虫出来,数据肯定是要入库的。

    反正我以前搞java的,所以还是要学习一下的关于python怎么操作数据库的?

    说到数据库呢。在当今的互联网企业中,最常用的数据库模式主要有两种,即关系型数据库和非关系型数据库。
    在这里插入图片描述
    数据库现在分:

    SQL关系型数据库:常见的MySQL和Oracle数据库、SQL Server

    NoSQL非关系型数据库:

    键值存储数据库:Redis、
    列存储数据库:HBase、
    面向文档数据库:MongoDB、
    

    更多请参考百度百科:数据库

    这里以Mysql为例(主要是其他我也不会啊~):

    为了使python连接上数据库,你需要一个驱动,这个驱动是用于与数据库交互的库。是一个叫PyMySQL 的工具。

    2.什么是 PyMySQL?

    PyMySQL : 这是一个使Python连接到MySQL的库,它是一个纯Python库。

    PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。

    手动安装:
    PyMySQL 下载地址:https://github.com/PyMySQL/PyMySQL

    命令安装:
    $ pip install PyMySQL

    PyMySQL支持的python版本:

    python2
    python2.7
    python3
    python version >=3.4

    查看PyMySQL版本信息,运行以下语句:

    pip show PyMySQL

    图示:
    在这里插入图片描述

    算了,我不就懒得科普了。

    3. 数据库建立

    继续上一篇文章的爬取结果呢,我们是存入在txt中,现在要存到Mysql数据库中去。

    所以,首先要打开你的mysql。
    打开你自己的Mysql管理软件,我的是navicat ,然后新建一个数据库py_zljob,再新建一张表zljob,字段如下:
    在这里插入图片描述
    当然你可以运行如下SQL来自动建立:

    CREATE TABLE `zljob` (
      `id` int(10) NOT NULL auto_increment COMMENT 'id',
      `jobName` varchar(30) default '' COMMENT '岗位',
      `city` varchar(30) default NULL COMMENT '工作地点',
      `workingExp` varchar(30) default NULL COMMENT '工作经验',
      `salary` varchar(30) default NULL COMMENT '薪资',
      `eduLevel` varchar(30) default NULL COMMENT '学历',
      `company` varchar(30) default NULL COMMENT '公司名',
      PRIMARY KEY  (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=361 DEFAULT CHARSET=utf8;
    
    

    这样建立好了我们用来存数据的数据表以后,就可以存数据了。

    4. 撸码入库

    继续上一篇文章的代码。

    连接数据库前,请先确认以下事项:

    • 已经创建了数据库 py_zljob.
    • 在py_zljob数据库中您已经创建了表 zljob

    在上次的代码基础上呢,我们新建一个操作数据库的函数。

    代码如下:

    # 入库Mysql
    def save_data_sql(content):
        #print(type(content)) # 是生成器generator对象
        try:
            # 打开数据库连接-填入你Mysql的账号密码和端口
            conn = pymysql.connect(host='localhost',user='root',password='root',db='py_zljob')
            # 使用 cursor() 方法创建一个游标对象 cursor
            mycursor = conn.cursor()
            print('对应的是:',content['jobName'])
            sql = "INSERT INTO zljob(jobName,city,workingExp,salary,eduLevel,company) \
                   VALUES (%s,%s,%s,%s,%s,%s)"
            params = (content['jobName'],content['city'],content['workingExp'],content['salary'],content['eduLevel'],content['company'])
            # 调用
            mycursor.execute(sql,params)
            #sql='select * from zljob'
            # 执行sql语句
            conn.commit()
            # 获取所有记录列表
            results = mycursor.fetchall()
            for row in results:
                print(row)
            print('成功插入', mycursor.rowcount, '条数据')
        except Exception:
            # 发生错误时回滚
            conn.rollback()
            print('发生异常')
        # 关闭数据库连接
        mycursor.close()
        conn.close()
    
    

    然后在main函数中,调用写的这个函数。
    在这里插入图片描述
    运行一下:
    在这里插入图片描述
    打开数据库里面的表:
    在这里插入图片描述

    入库成功,好了,这就是我们的关于python3爬虫数据存入Mysql数据库的相关操作了。

    更多关于python3使用PyMySQL对mysql增删查改工具类,请看:

    python3使用PyMySQL对mysql增删查改工具类


    下一篇是数据可视化了。源码在最后一篇哟,不要急,留下邮箱也可以发。

    题外话:

    注:如果你的MySQL的版本≥5.5.3,可以把编码设置为utf8mb4,utf8mb4和utf8完全兼容,但它支持最新的Unicode标准,可以显示emoji字符。

    还不赶紧cmd打开,看看你的mysql?

    mysql> show variables like ‘%char%’;

    看到utf8字样就表示编码设置正确。

    展开全文
  • nodejs之简单的爬数据

    万次阅读 2020-06-29 19:44:35
    nodejs 之简单爬数据 准备 cheerio 插件 cheerio 是一个为服务器特别定制的,快速、灵活、实施的 jQuery 核心实现方案。 axios 插件 axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中 代码 ...

    nodejs 之简单爬数据

    • 准备

      • cheerio 插件
        cheerio 是一个为服务器特别定制的,快速、灵活、实施的 jQuery 核心实现方案。
      • axios 插件
        axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中
    • 代码

      const fs = require("fs");
      const cheerio = require("cheerio");
      const axios = require("axios").default; // 发起一个网络请求获取数据
      const books = [];
      axios
      .get(
      "https://www.17k.com/top/refactor/top100/01_subscribe/01_subscribe__top_100_pc.html"
      ) //此链接为17k小说网的排行榜网址
      .then((res) => {
      const $ = cheerio.load(res.data);
      
          $(".BOX")
            .eq(0) // 获取指定索引位置的数据,返回一个jq实例
            .find("table tr") // find 查找符合元素选择条件的数据
            .each(function (index) {
              if (index > 0) {
                // 不取第一项
                let book = {};
                book.id = index;
                book.title = $(this).find("td").eq(2).find("a").text();
                book.link =
                  "https:" + $(this).find("td").eq(2).find("a").attr("href");
                fs.mkdirSync("./books/" + book.title, {
                  recursive: true,
                });
                books.push(book);
              }
            });
          fs.writeFileSync("./books.json", JSON.stringify(books));
      
      });
      
          ```
      
    展开全文
  • Scrapy爬虫(七):爬虫数据存储实例

    千次阅读 2016-12-27 15:22:00
    Scrapy爬虫(七):爬虫数据存储实例Scrapy爬虫七爬虫数据存储实例 数据存储 配置mysql服务 在mysql中创建好四个item表 创建项目 运行爬虫 本章将实现数据存储到数据库的实例。 数据存储scrapy支持将数据存储到文件,...

    Scrapy爬虫(七):爬虫数据存储实例

    本章将实现数据存储到数据库的实例。

    数据存储

    scrapy支持将数据存储到文件,例如csv、jl、jsonlines、pickle、marshal、json、xml,少量的数据存储到数据库还行,如果超大量的数据存储到文件(当然图片还是要存文件的),就显得不太友好,毕竟这些数据要为我所用。

    因此我们通常将数据存储到数据库,本处将介绍的是最常用的数据库mysql。我们也看到scrapy中的pipeline文件还没有用到,其实这个文件就是处理spider分发下来的item,我们可以在pipeline中处理文件的存储。

    • mysql库(PyMysql)的添加

    打开pycharm File–>Default Settings–>Project interpreter点击左下角的“+”,搜索PyMysql,如图:

    SouthEast

    点击安装install package,如果无法安装可以选择将上面的install to user‘s site…勾选安装到Users目录下。

    配置mysql服务

    1、安装mysql

    root@ubuntu:~# sudo apt-get install mysql-server
    root@ubuntu:~# apt isntall mysql-client 
    root@ubuntu:~# apt install libmysqlclient-dev 

    期间会弹出设置root账户的密码框,输入两次相同密码。


    2、查询是否安装成功

    root@ubuntu:~# sudo netstat -tap | grep mysql 
    root@ubuntu:~# netstat -tap | grep mysql
    
    tcp6        0       0       [::]:mysql    [::]:*    LISTEN    7510/mysqld 

    3、开启远程访问mysql

    • 编辑mysql配置文件,注释掉“bind-address = 127.0.0.1”
    root@ubuntu:~# vi /etc/mysql/mysql.conf.d/mysqld.cnf  
    #bind-address = 127.0.0.1
    • 进入mysql root账户
    root@ubuntu:~# mysql -u root -p123456 
    • 在mysql环境中输入grant all on . to username@’%’ identified by ‘password’;
    • 或者grant all on . to username@’%’ identified by ‘password’ with grand option;
    root@ubuntu:~# grant all on *.* to china@'%' identified by '123456';   
    • 刷新flush privileges;然后重启mysql,通过/etc/init.d/mysql restart命令
    root@ubuntu:~# flush privileges; 
    root@ubuntu:~# /etc/init.d/mysql restart 
    • 远程连接时客户端设置:

    20161010180300126


    4、常见问题

    • 1045 access denied for user ‘root’@’localhost(ip)’ using password yes
    1、mysql -u root -p;
    2、GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
    3、FLUSH PRIVILEGES;

    在mysql中创建好四个item表

    SouthEast

    创建项目

    安装好PyMysql后就可以在pipeline中处理存储的逻辑了。首先创建项目:scrapy startproject mysql 本例还是使用上一章多个爬虫组合实例的例子,处理将其中四个item存储到mysql数据库。
    然后打开创建好的mysql项目,在settings.py中添加数据库连接相关的常量。

    # -*- coding: utf-8 -*-
    BOT_NAME = 'mysql'
    
    SPIDER_MODULES = ['mysql.spiders']
    NEWSPIDER_MODULE = 'mysql.spiders'
    
    MYSQL_HOST = 'localhost'
    MYSQL_DBNAME = 'spider'
    MYSQL_USER = 'root'
    MYSQL_PASSWD = '123456'
    
    DOWNLOAD_DELAY = 1
    
    ITEM_PIPELINES = {
        'mysql.pipelines.DoubanPipeline': 301,
    }

    其中ITEM_PIPELINES即是将pipeline加入到配置中生效。

    ITEM_PIPELINES = {
        'mysql.pipelines.DoubanPipeline': 301,
    }

    pipelines.py配置

    # -*- coding: utf-8 -*-
    
    # Define your item pipelines here
    #
    # Don't forget to add your pipeline to the ITEM_PIPELINES setting
    # See: http://doc.scrapy.org/en/latest/topics/item-pipeline.html
    import pymysql
    from scrapy import log
    
    from mysql import settings
    from mysql.items import MusicItem, MusicReviewItem, VideoItem, VideoReviewItem
    
    
    class DoubanPipeline(object):
        def __init__(self):
            self.connect = pymysql.connect(
                host=settings.MYSQL_HOST,
                db=settings.MYSQL_DBNAME,
                user=settings.MYSQL_USER,
                passwd=settings.MYSQL_PASSWD,
                charset='utf8',
                use_unicode=True)
            self.cursor = self.connect.cursor()
    
        def process_item(self, item, spider):
            if item.__class__ == MusicItem:
                try:
                    self.cursor.execute("""select * from music_douban where music_url = %s""", item["music_url"])
                    ret = self.cursor.fetchone()
                    if ret:
                        self.cursor.execute(
                            """update music_douban set music_name = %s,music_alias = %s,music_singer = %s,
                                music_time = %s,music_rating = %s,music_votes = %s,music_tags = %s,music_url = %s
                                where music_url = %s""",
                            (item['music_name'],
                             item['music_alias'],
                             item['music_singer'],
                             item['music_time'],
                             item['music_rating'],
                             item['music_votes'],
                             item['music_tags'],
                             item['music_url'],
                             item['music_url']))
                    else:
                        self.cursor.execute(
                            """insert into music_douban(music_name,music_alias,music_singer,music_time,music_rating,
                              music_votes,music_tags,music_url)
                              value (%s,%s,%s,%s,%s,%s,%s,%s)""",
                            (item['music_name'],
                             item['music_alias'],
                             item['music_singer'],
                             item['music_time'],
                             item['music_rating'],
                             item['music_votes'],
                             item['music_tags'],
                             item['music_url']))
                    self.connect.commit()
                except Exception as error:
                    log(error)
                return item
    
            elif item.__class__ == MusicReviewItem:
                try:
                    self.cursor.execute("""select * from music_review_douban where review_url = %s""", item["review_url"])
                    ret = self.cursor.fetchone()
                    if ret:
                        self.cursor.execute(
                            """update music_review_douban set review_title = %s,review_content = %s,review_author = %s,
                                review_music = %s,review_time = %s,review_url = %s
                                where review_url = %s""",
                            (item['review_title'],
                             item['review_content'],
                             item['review_author'],
                             item['review_music'],
                             item['review_time'],
                             item['review_url'],
                             item['review_url']))
                    else:
                        self.cursor.execute(
                            """insert into music_review_douban(review_title,review_content,review_author,review_music,review_time,
                              review_url)
                              value (%s,%s,%s,%s,%s,%s)""",
                            (item['review_title'],
                             item['review_content'],
                             item['review_author'],
                             item['review_music'],
                             item['review_time'],
                             item['review_url']))
                    self.connect.commit()
                except Exception as error:
                    log(error)
                return item
    
            elif item.__class__ == VideoItem:
                try:
                    self.cursor.execute("""select * from video_douban where video_url = %s""", item["video_url"])
                    ret = self.cursor.fetchone()
                    if ret:
                        self.cursor.execute(
                            """update video_douban set video_name= %s,video_alias= %s,video_actor= %s,video_year= %s,
                              video_time= %s,video_rating= %s,video_votes= %s,video_tags= %s,video_url= %s,
                              video_director= %s,video_type= %s,video_bigtype= %s,video_area= %s,video_language= %s,
                              video_length= %s,video_writer= %s,video_desc= %s,video_episodes= %s where video_url = %s""",
                            (item['video_name'],
                             item['video_alias'],
                             item['video_actor'],
                             item['video_year'],
                             item['video_time'],
                             item['video_rating'],
                             item['video_votes'],
                             item['video_tags'],
                             item['video_url'],
                             item['video_director'],
                             item['video_type'],
                             item['video_bigtype'],
                             item['video_area'],
                             item['video_language'],
                             item['video_length'],
                             item['video_writer'],
                             item['video_desc'],
                             item['video_episodes'],
                             item['video_url']))
                    else:
                        self.cursor.execute(
                            """insert into video_douban(video_name,video_alias,video_actor,video_year,video_time,
                              video_rating,video_votes,video_tags,video_url,video_director,video_type,video_bigtype,
                              video_area,video_language,video_length,video_writer,video_desc,video_episodes)
                              value (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)""",
                            (item['video_name'],
                             item['video_alias'],
                             item['video_actor'],
                             item['video_year'],
                             item['video_time'],
                             item['video_rating'],
                             item['video_votes'],
                             item['video_tags'],
                             item['video_url'],
                             item['video_director'],
                             item['video_type'],
                             item['video_bigtype'],
                             item['video_area'],
                             item['video_language'],
                             item['video_length'],
                             item['video_writer'],
                             item['video_desc'],
                             item['video_episodes']))
                    self.connect.commit()
                except Exception as error:
                    log(error)
                return item
    
            elif item.__class__ == VideoReviewItem:
                try:
                    self.cursor.execute("""select * from video_review_douban where review_url = %s""", item["review_url"])
                    ret = self.cursor.fetchone()
                    if ret:
                        self.cursor.execute(
                            """update video_review_douban set review_title = %s,review_content = %s,review_author = %s,
                                review_video = %s,review_time = %s,review_url = %s
                                where review_url = %s""",
                            (item['review_title'],
                             item['review_content'],
                             item['review_author'],
                             item['review_video'],
                             item['review_time'],
                             item['review_url'],
                             item['review_url']))
                    else:
                        self.cursor.execute(
                            """insert into video_review_douban(review_title,review_content,review_author,review_video,review_time,
                              review_url)
                              value (%s,%s,%s,%s,%s,%s)""",
                            (item['review_title'],
                             item['review_content'],
                             item['review_author'],
                             item['review_video'],
                             item['review_time'],
                             item['review_url']))
                    self.connect.commit()
                except Exception as error:
                    log(error)
                return item
            else:
                pass
    

    在上面的pipeline中我已经做了数据库去重的操作。

    运行爬虫

    pycharm运行run.py,mysql数据库表中已经存好了我们要的数据。

    SouthEast

    github地址


    展开全文
  • 网页爬数据方法记录

    2019-02-27 15:53:05
    记录网上爬数据的方法 下面是对某网站获取酒店名称的例子 被爬的网址:http://www.liemingwang.com/dpmz/4958.html /** *大致思路:确认数据位置或特定的id/class,通过分析原始数据和目标数据的差别,寻找规则或者...
  • R语言 爬数据

    千次阅读 2016-11-30 23:44:55
    爬数据的两大难点: 1.分析网络结构 2.写正则表达式 科普版: install.packages("RCurl") library(RCurl) url1='http://shenzhen.lashou.com/cate/meishi' web=readLines(url1,encoding='UTF-8') goods_name...
  • Python爬虫数据写入操作

    千次阅读 2017-09-16 10:14:49
    Python Scrapy爬虫数据写入操作 在我们写完一个爬虫项目,得到了一大堆的数据,为了以后的分析和使用,我们需要把我们得到的数据进行保存。保存数据的方式主要有:保存到数据库,保存到CSV文件,保存为JSON文件。 ...
  • 爬虫数据储存—CSV文件

    千次阅读 2019-10-31 10:39:23
    爬虫数据储存—CSV文件 一、什么是CSV文件 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。 二、CSV文件特点:...
  • python作为人工智能或者大数据的宠儿,我自然要学习,作为一个小白,第一个实现的工能就是爬虫,爬数据,收集数据,我以我爬csdn博客的事情为例子,附上代码,大家一起学习 这里还使用了ip代理基数,一起奉献了 #!...
  • 现在爬数据越来越难,各种反爬,简单的网站没做什么反爬,就随便介绍下: 1.随便找点网站弄点免费的http代理ip,去爬一下,太简单就不介绍了,目前最好用的代理ip是蘑菇代理 具体说下,稍微有点爬虫技术含量的吧,...
  • 爬虫网络请求方式:urllib(模块), requests(库), scrapy, pyspider(框架)爬虫数据提取方式:正则表达式, bs4, lxml, xpath, css测试HTML代码:首先导入from bs4 import BeautifulSoup序列化HTML代码# 参数1:序列化...
  • 爬虫数据存储—数据库和MySQL

    千次阅读 2019-10-31 15:56:46
    爬虫数据存储—数据库 一、什么是数据库? 数据库是一个以某种有组织的方式存储的数据集合。简单来说,我们可以将数据库想象为一个文件柜,文件柜里面有很多文件,这些文件我们称之为表。 举一个实际例子:比如说...
  • 如何用Python爬数据?(一)网页抓取

    万次阅读 多人点赞 2018-03-04 00:00:00
    你期待已久的Python网络数据爬虫教程来了。本文为你演示如何从网页里找到感兴趣的链接和说明文字,抓取并存储到Excel。(由于微信公众号外部链接的限制,文中的部分链接可能无法正确打开。如有需要,请点击文末的...
  • 1.爬虫数据提取——方法总结

    千次阅读 2019-10-21 15:55:04
    爬虫数据提取——方法总结 在获取了我们想要的html页面之后,接下来的问题就是如何将我们需要的数据给提取下来,一般来说有三种方式,分别是Xpath语法,正则表达式和bs4库,只要掌握了这三种方法,可以说html页面上...
  • 2.爬虫数据提取——Xpath环境配置

    千次阅读 2019-10-21 14:01:18
    爬虫数据提取——Xpath环境配置 一、什么是Xpath语法? xpath(XML Path Language)是一门在XML和HTML文档中查找信息的语言,可用来在XML和HTML文档中对元素和属性进行遍历。简单来说,我们的数据是超文本数据,想...
  • 目录简单介绍Beautiful Soup教...因此,了解 web 页面结构对于爬数据是必要的。 Beautiful Soup Beautiful Soup【 文档 】 是一个可以从HTML或XML文件中提取数据的 Python 库。它能够通过你喜欢的转换器实现惯用的文档
  • python爬数据,天气预报 返回403

    千次阅读 2019-01-10 14:07:20
    爬数据的时候,一般网站获取数据访问的动态js文件是可以直接访问的,用普通 request = urllib.request.urlopen(url) res = request.read() 就可以获取 而有的不能直接获取,返回403报错,意思是访问不到, 而...
  • 我们用爬虫爬数据的时候,怎么应对反爬虫,尤其是应对阿里的反爬虫
  • 本文为你分享3个爬数据的小工具,零技术基础也能学会呦! 当前的主流爬虫手段是用Python编程,Python的强大毋庸置疑,但初学者学习Python还是需要一两个月时间的。有没有一些更简单的爬取数据方法呢?答案是有...
  • 爬虫数据的获取

    万次阅读 2018-08-07 11:51:16
    我们学会了使用爬虫当然少不了网页的解析,首先我们打开一个浏览器输入你选好的网站,按下F12可以查看网页的内容和我们想要的报头,但是很不幸的是你打开之后发现没有数据,如下所示 这是由于你没有刷新,你点击...
  • Python爬数据

    千次阅读 2017-08-19 18:23:33
    最近很多人问怎么抓网页数据,据我所知,常见的编程语言(C++,java,python)都可以实现抓网页数据,甚至很多统计\计算的语言(R,Matlab)都有可以实现和网站交互的包。本人试过用java,python,R抓网页,感觉语法各有差异...
  • 爬虫数据提取——lxml库的安装 一、什么是lxml? 在我们获取html页面之后,可以使用xpath语法进行数据提取,但是,直接在获取的content里面使用xpath语法进行数据提取吗?显然不是的,获取的内容仅仅只是一个包含...
  • 教你如何从Google Map爬数据(切片)

    千次阅读 2018-06-09 19:25:34
    转:http://blog.csdn.net/JairusChan在这篇博文中,笔者从实验的角度,从爬数据的困难出发,阐述如何从Google Map上爬地图数据。本文的出发点为实验,而非商用。Google Map对其自己的数据具有其权益,希望读者以...
  • 用谷歌自带的抓包工具也不能捕获到数据。于是下了Fiddler。  Fiddler的爬取结果如下:  可见,除了头信息之外,下面的数据信息显示成了乱码。这样就不能用程序模拟浏览器发送数据了。  解决办法之一就是...
  • steam爬虫数据抓取

    千次阅读 2018-12-03 17:14:12
    不废话,直接上代码,要借鉴的自己看,不想写的可以直接联系我 # -*- coding: utf-8 -*- """ File Name: main Description : Author : mengzhihao ...
  • 1分钟轻松爬数据(web scraper插件使用教程) 前提你已安装web scraper(Google,FireBox商店都有)。 说明:安装后右键查看元素或检查即可看到web scraper,简介如图. 刚开始只能点第一个(显示你自己建的要爬的所有...
  • 利用requests.text获取html源码,所需的数据在控台上显示了,就不是动态数据,就可以用requests和BeautifulSoup这个包来数据;如果是没有在控台显示,那就就是动态加载的数据,要打开网页了才能获取到想要的数据...
  • 教你如何从Google Map爬数据

    万次阅读 热门讨论 2012-04-25 11:58:14
    在这篇博文中,笔者从实验的角度,从爬数据的困难出发,阐述如何从Google Map上爬地图数据。本文的出发点为实验,而非商用。Google Map对其自己的数据具有其权益,希望读者以博文为学习实验之用,不要将自己所爬到的...
  • 爬虫数据抓包

    千次阅读 2017-02-01 12:46:50
    抓包分析是爬虫研发的最基础和关键的步骤。要足够细心和耐心,开发时应采取循序渐进的步骤,并在每个关键环节留有日志输出,方便爬虫问题的问题跟踪与追根溯原。

空空如也

1 2 3 4 5 ... 20
收藏数 56,143
精华内容 22,457
关键字:

爬数据