精华内容
下载资源
问答
  • Python爬虫教程

    2018-12-11 12:01:26
    Python爬虫教程: 1、urllib、request 源码分析 2、Python爬虫案例分析 3、Scrapy爬虫框架教程
  • python超简单爬虫教程

    万次阅读 多人点赞 2020-06-12 17:24:44
    python超简单爬虫教程python超简单爬虫教程七大步骤:1发送数据请求2请求网站源码3数据筛选4存储数据5数据可视化6数据分析7公司决策 python超简单爬虫教程 大家好!在这里给大家交流一下小编总结得python超简单爬虫...

    python超简单爬虫教程

    大家好!在这里给大家交流一下小编总结得python超简单爬虫教程,废话不多说,直接上代码

    七大步骤:

    1发送数据请求
    2请求网站源码
    3数据筛选
    4存储数据
    5数据可视化
    6数据分析
    7公司决策

    完整代码如下:

    import request
    import re
    import xlwt
    #获取源码
    def get_content(page):
    	url = 'https://www.zhipin.com/c101010100-p100109/?page='+str(page)+'&ka=page-'+str(page)+''
    	headers = {
    		"user-agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.26 Safari/537.36 Core/1.63.6788.400 QQBrowser/10.3.2727.400"
     	}
    	req = request.get(url,headers=headers)
    	req.encoding = 'utf-8'
    	html = req.text
    	return html 	
    #筛选数据 获取满足正则表达式所爬去的目标
    def get(html):
    	reg = re.compile(r'class="job-tab".*?<div class="job-title">(.*?)</div>.*?<span class="red">(.*?)</span>.*?target="_blank">(.*?)</a>',re.S)
    	item = re.findall(reg,html)
    	return items
    datalist = []
    def saveDataToDatalist():
    	for j in range(1,6)
    		print('正在爬取第'+str(j)+'页数据内容。。。')
    		html get_content(j)
    		for i in get(html)
    			data = []
    			for j in range(0,5):
    				data.append(i[j])
    			datalist.append(data)
    	return
    #创建方法将datalist内容写入excel文件
    def saveDataToExcel(savePath):
    	book = xlwt.Workbook(encoding='utf-8',style_compression=0)
    	sheet = book.add_sheet('boss',cell_overwrite_ok=Ture)
    	col = ('职位','薪资','公司名称')
    	for i in range(0,5)
    		sheet.wirte(0,i,col[i])
    	for i in range(0,len(0,len(datalist)):
    		data = datalist[i]
    		for j in range(0,5):
    		sheet.wirte(i+1,j,data[j])
    	book.save(savePath)
    saveDataToDatalist()
    saveDataToExcel('boss.xls')
    
    

    就这样了,都看到这里了,点赞关注走一走吧,谢谢大家!
    django项目部署上线完整教程(ContenOS)

    展开全文
  • python 爬虫教程

    2016-09-06 19:52:29
    python 爬虫教程
  • 爬虫教程文档

    2016-05-09 10:30:34
    爬虫教程文档
  • python 爬虫 教程 高性能异步爬虫
  • python爬虫教程.zip

    2020-12-24 20:02:57
    python爬虫教程.zip python的传统应用场景之一就是爬虫,扒网站数据.这是一份比较详细的爬虫教程
  • Python 爬虫教程中转站

    千次阅读 多人点赞 2020-04-06 13:42:17
  • python 爬虫 教程 增量式爬虫的相关示例
  • python爬虫教程.txt

    2020-11-09 22:26:20
    该资源提供学习使用,基于python的爬虫教程,对python编程 需要有一定的基础,才能进行操作。
  • 最新Java WebMagic爬虫教程(包括:HttClient/Jsoup的使用教程)、爬虫案例项目
  • 用python编写网络爬虫教程合集+一个爬虫框架 爬虫入门 网络爬虫 爬虫精华 web scraper框架
  • python3爬虫教程.zip

    2020-12-27 19:22:03
    python3爬虫教程.zip
  • Python爬虫教程.rar

    2020-09-01 08:45:10
    Python爬虫教程,里面包含了爬虫的基础教程,数据可视化教程,以及爬虫实战的资料,适合新手入门学习,需要自取。
  • 豆瓣爬虫项目,从0到1爬虫教程【Python爬虫实战项目】
  • python网络爬虫教程

    2017-12-05 11:27:17
    python网络爬虫教程!里面有各种爬虫代码以及对于爬虫的详细介绍。并且还有一些关于python的基础内容。对于掌握python具有比较好的作用。里面代码案例非常丰富。
  • python入门爬虫教程汇总

    千次阅读 多人点赞 2019-02-20 21:08:25
  • Python基础教程及爬虫教程,附有代码及工程项目,来自传智播客实训,
  • PythonSpiderCourseSource:Python爬虫教程源码
  • python爬虫教程系列、从0到1学习python爬虫,包括浏览器抓包,手机APP抓包,各种爬虫涉及的模块的使用,如:requests、beautifulSoup、selenium、appium、scrapy等,以及IP代理,验证码识别,Mysql,MongoDB数据库的...
  • node爬虫教程

    千次阅读 2018-08-10 23:02:40
    最近几天在公司一直在抓别的网站的数据, 今天闲来无事, 想写一个简单的node爬虫教程, 简单易学, 简单几步就可以实现, 可以控制并发, 请求频率等, 我是使用的node-cralwer这个框架写的, 当然使用原生的request模块也...

    最近几天在公司一直在抓别的网站的数据, 今天闲来无事, 想写一个简单的node爬虫教程, 简单易学, 简单几步就可以实现, 可以控制并发, 请求频率等, 我是使用的node-cralwer这个框架写的, 当然使用原生的request模块也是可以的, 使用框架简单高效, 比自己写要效率好.

    爬虫无非就是分析网页, 分析接口, 取得你想要的数据, 取得数据有两种方式

    • 对于直接请求得到的是静态页面, 直接分析html, 取得自己需要的数据
    • 还有就是通过api接口获取到的数据, 这样分析下参数, 就行

    分析页面数据结构

    今天我们以易车网为例子, 因为该网站两种方式都有易车网所有车型
    这里写图片描述

    如图我们要获取所有品牌的型号信息, 点击左侧的导航, 会进入, 品牌车型列表页, 我们按F12会看到, 这部分的信息是后来js通过ajax请求到的, 所以这个就要请求接口获取数据了, 这里判断页面数据是ajax动态请求还是静态的数据, 可以右键查看网页源代码, 如果代码中有就是静态的, 如果没有就是ajax动态请求的数据

    这里写图片描述

    找到接口后我们就可以请求接口拿数据了, 可以看到每一项有一个url字段, 我们进入到品牌车型列表页之后会发现这个url加上根域名就是这个品牌的型号列表;

    接下来我们在去进入品牌车型列表页, 这里我们可以看到, 这里的数据都是静态的(seo的原因),所以我们只需分析html就可以了
    这里写图片描述

    编写爬虫

    页面数据结构我们已经分析完了
    抓取步骤就是

    • 先ajax请求首页的所有品牌的车型,
    • 然后进入品牌车型列表页,
    • 分析html取得自己想要的数据

    我采用的是node-crawler这个框架, 使用方法我就不一一赘述了, 有中文文档

    因为每个爬虫都需要初始化一个crawler对象, 所以这里我把crawler又封装了一下, 我的代码已经传到github上, 感兴趣的可以去clone下来看一下

    const Crawler = require("crawler"),
        path = require('path'), root_path = process.cwd(),
        config = require(path.join(root_path, '/config'));
    module.exports = {
        c: '',
        num: '',
        initCrawler(headers={}, cb) {
            this.c = new Crawler({
                // 超时时间
                timeout: config.crawler.timeout,
                // 失败重试次数
                retries: config.crawler.retries,
                // 失败重试等待时间
                retryTimeout: config.crawler.retryTimeout,
                // 最大并发数默认为10
                // maxConnections: config.crawler.maxConnections,
                // rateLimit: config.crawler.rateLimit,
                // 在每个请求处理完毕后将调用此回调函数
                headers: headers,
                callback: function (error, res, done) {
                    if (error) {
                        console.log(error);
                    } else {
                        cb(res)
                    }
                    done();
                }
            });
        }
    }

    第一步是获得所有的品牌信息, 然后循环请求网页

    // 初始化clawler对象
    crawler.initCrawler(headers, res => {
        // 格式化请求到的数据
        res.body = res.body.replace('JsonpCallBack(','')
        res.body = res.body.substr(0,res.body.lastIndexOf(')'))
        res.body = res.body.replace(/(?:\s*['"]*)?([a-zA-Z0-9]+)(?:['"]*\s*)?:/g, '"$1":')
        res.body = JSON.parse(res.body);
    
        for (const key in res.body.brand) {
            if (res.body.brand.hasOwnProperty(key)) {
                const element = res.body.brand[key];
                element.forEach(e => {
                   getPage(host+e.url, e.name)
                });
            }
        }
    })

    然后就是请求每个页面, 获取页面内的信息

    // 请求每个品牌的页面
    function getPage(url, name) {
        crawler.c.queue({
            uri: url,
            callback: function(err,res,done) {
                if (err) {
                    return err
                }
                let $ = res.$;
                $('#divCsLevel_0 .col-xs-3 ').each((i, e) => {
                    downImg($(e).find('.img img').attr('src'), $(e).find('.p-list li.name a').text())
                    crawler.num++; // 请求成功
                    console.log(crawler.num+':'+name+'--'+$(e).find('li.name a').text()+'; 价格--'+$(e).find('li.price a').text());
                    var info = {
                        "品牌": name,
                        "车型": $(e).find('.p-list li.name a').text(),
                        "网址": host+ $(e).find('.p-list li.name a').attr('href'),
                        "价格": $(e).find('.p-list li.price a').text()
                    }
                    // 写入json文件, 存入数据库亦可
                    fs.appendFile('车型.json',JSON.stringify(info)+',', function(err) {
                        if (err) {
                            console.error(err);
                            return;
                        }
                        // 写入成功
                        cNum++;
                        end();
                    });
                })
                done()
            }
        })
    }

    最后是下载车型图片

    function downImg(link, name) {
        crawler.c.queue({
            uri: link,
            encoding: null,
            jQuery: false, 
            callback: function (err, res, done) {
                if (err) {
                    console.error(err.stack);
                } else {
                    imgNum++;
                    fs.createWriteStream(root_path + '/images/' + name+'.png').write(res.body);
                    end();
                }
                done();
            }
        });
    }

    最后就是判断退出条件, 我这里是判断, 车型数量/写入次数/下载图片次数想等后退出程序

    
    function end() {
        if (crawler.num == cNum && cNum == imgNum) {
            fs.appendFileSync('车型.json',']');
            // 如果请求并且写入完成, 退出程序
            process.exit(1)
        }
    }

    项目中我没有控制并发, 为了快速抓取完, 正常在服务器跑的爬虫是要控制并发以及请求频次的, 避免网站封了IP; 如果要控制并发/public/crawler.js 注释掉的部分释放掉

    展开全文
  • python 爬虫 教程 关于 动态加载数据处理 示例
  • Python爬虫教程-01-爬虫介绍
  • Python爬虫教程千万别错过!!来自千锋资深Python讲师,希望对你有帮助~
  • Python爬虫的代码示例,很简单的教程,很详细,适合初学的人看,以旅游网站为实例
  • pyspider 爬虫教程

    千次阅读 2016-12-26 15:16:19
    pyspider 爬虫教程(一):HTML 和 ...不过,没想到这个教程居然会变成一篇译文,在这个爬虫教程系列文章中,会以实际的例子,由浅入深讨论爬取(抓取和解析)的一些关键问题。 在 教程一 中,我们将要爬取的网站是
  • python操作数据库,还有爬虫教程,你懂得好东西,有效期2个月速度....或者到达60分
  • Python爬虫教程-34-分布式爬虫介绍

    万次阅读 2018-09-05 21:51:06
    Python爬虫教程-34-分布式爬虫介绍 分布式爬虫在实际应用中还算是多的,本篇简单介绍一下分布式爬虫 什么是分布式爬虫 分布式爬虫就是多台计算机上都安装爬虫程序,重点是联合采集。单机爬虫就是只在一台...
  • Python爬虫教程+书籍分享

    千次阅读 2018-11-29 11:56:26
    Python爬虫教程+书籍分享 Python爬虫教程+书籍分享 Python爬虫教程+书籍分享 下载地址:百度网盘
  • python爬虫教程

    2018-03-25 07:31:34
    用python写爬虫 ,教你怎么用python写爬虫,,,,,。。。。。。。。。。
  • 2019最新Python学习教程(Python爬虫教程_Python学习路线):爬虫工程师10个必备的爬虫工具 最近很多学爬虫的伙伴让推荐顺手的爬虫工具,总结了一下,把这些好用的爬虫工具都跟你们找齐活了! ​ 都知道工欲善其事必...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 52,912
精华内容 21,164
关键字:

爬虫教程

爬虫 订阅