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

    2019-03-16 12:46:05
    1.新建项目:scrapy startproject xxx项目名,例如: ...2、 创建爬虫文件 name:为文件的名字, 在spiders文件下运行 :scrapy genspider -t crawl name'xxxx.com' 3、运行爬虫文件 scrapy crawl name ...

    1.新建项目:scrapy startproject xxx项目名,例如:

    scrapy startproject new_project

    2、 创建爬虫文件

    name:为文件的名字,

    在spiders文件下运行 :scrapy genspider -t crawl name 'xxxx.com'       

    3、运行爬虫文件

     scrapy crawl name   

    2、Pipeline.py 文件

    • 对应 pipelines 文件
    • 爬虫提取出数据存入 item 后,item 中保存的数据需要进一步处理,比如清洗,去重,存储等
    • Pipeline 需要处理 process_item 函数
    • process_item
      • spider 提取出来的 item 作为参数传入,同时传入的还有 spider
      • 此方法必须实现
      • 必须返回一个 Item 对象,被丢弃的 item 不会被之后的 pipeline
    • _ init _:构造函数
      • 进行一些必要的参数初始化
    • open_spider(spider):
      • spider 对象对开启的时候调用
    • close_spider(spider):
      • 当 spider 对象被关闭的时候调用
    • Spider 目录
      • 对应的是文件夹 spider 下的文件
      • _ init _:初始化爬虫名称,start _urls 列表
      • start_requests:生成 Requests 对象交给 Scrapy 下载并返回 response
      • parse:根据返回的 response 解析出相应的 item,item 自动进入 pipeline:如果需要,解析 url,url自动交给 requests 模块,一直循环下去
      • start_requests:此方法尽能被调用一次,读取 start _urls 内容并启动循环过程
      • name:设置爬虫名称
      • start_urls:设置开始第一批爬取的 url
      • allow_domains:spider 允许去爬的域名列表
      • start_request(self):只被调用一次
      • parse:检测编码
      • log:日志记录

     

    展开全文
  • 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爬虫教程

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

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

    2016-05-09 10:30:34
    爬虫教程文档
  • python爬虫教程.zip

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

    2020-09-01 08:45:10
    Python爬虫教程,里面包含了爬虫的基础教程,数据可视化教程,以及爬虫实战的资料,适合新手入门学习,需要自取。
  • Python 爬虫教程中转站

    千次阅读 多人点赞 2020-04-06 13:42:17
    Python爬虫教程(详细教程 + 各种实战),欢迎大家订阅!!!

    Because the people who are crazy enough to think that they can change the world, are the ones who do.

    爬虫基础知识教程

    爬虫案例

    持续更新中,欢迎大家订阅!!!😄

    展开全文
  • 用python编写网络爬虫教程合集+一个爬虫框架 爬虫入门 网络爬虫 爬虫精华 web scraper框架
  • 爬虫教程】最详细的爬虫入门教程~

    千次阅读 多人点赞 2020-06-12 16:54:45
    爬虫教程】吐血整理,最详细的爬虫入门教程~ 初识爬虫 学习爬虫之前,我们首先得了解什么是爬虫。来自于百度百科的解释: 网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者)...

    【爬虫教程】吐血整理,最详细的爬虫入门教程~

    初识爬虫

    学习爬虫之前,我们首先得了解什么是爬虫。
    来自于百度百科的解释:

    网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。

    通俗来讲,假如你需要互联网上的信息,如商品价格,图片视频资源等,但你又不想或者不能自己一个一个自己去打开网页收集,这时候你便写了一个程序,让程序按照你指定好的规则去互联网上收集信息,这便是爬虫,我们熟知的百度,谷歌等搜索引擎背后其实也是一个巨大的爬虫

    爬虫合法吗?
    可能很多小伙伴都会又这个疑问,首先爬虫是一门技术,技术应该是中立的,合不合法其实取决于你使用目的,是由爬虫背后的人来决定的,而不是爬虫来决定的。另外我们爬取信息的时候也可以稍微‘克制’一下,能拿到自己想要的信息就够了,没必要对着人家一直撸,看看我们的12306都被逼成啥样了🤧🤧🤧。
    一般来说只要不影响人家网站的正常运转,也不是出于商业目的,人家一般也就只会封下的IP,账号之类的,不至于法律风险👌。
    其实大部分网站都会有一个robots协议,在网站的根目录下会有个robots.txt的文件,里面写明了网站里面哪些内容可以抓取,哪些不允许。
    以淘宝为例——https://www.taobao.com/robots.txt
    淘宝Robots协议部分内容

    当然robots协议本身也只是一个业内的约定,是不具有法律意义的,所以遵不遵守呢也只能取决于用户本身的底线了。

    Why Python

    很多人提到爬虫就会想到Python,其实除了Python,其他的语言诸如C,PHP,Java等等都可以写爬虫,而且一般来说这些语言的执行效率还要比Python要高,但为什么目前来说,Python渐渐成为了写很多人写爬虫的第一选择,我简单总结了以下几点:

    • 开发效率高,代码简洁,一行代码就可完成请求,100行可以完成一个复杂的爬虫任务;
    • 爬虫对于代码执行效率要求不高,网站IO才是最影响爬虫效率的。如一个网页请求可能需要100ms,数据处理10ms还是1ms影响不大;
    • 非常多优秀的第三方库,如requests,beautifulsoup,selenium等等;
      本文后续内容也将会以Python作为基础来进行讲解。

    环境准备

    • Python安装,这部分可以参考我之前的文章Python环境配置&Pycharm安装,去官网下载对应的安装包,一路Next安装就行了;
    • pip安装,pip是Python的包管理器,现在的Python安装包一般都会自带pip,不需要自己再去额外安装了;
    • requests,beautifulsoup库的安装,通过以下语句来完成安装:
      pip install requests
      pip install beautifulsoup4

           apt install python3-pip
           pip3 install beautifulsoup4

           pip3 install lxml

     

    • 谷歌浏览器(chrome);

    第三方库介绍

    requests

    requests应该是用Python写爬虫用到最多的库了,同时requests也是目前Github上star✨最多的Python开源项目。
    requests在爬虫中一般用于来处理网络请求,接下来会用通过简单的示例来展示requests的基本用法。

    1. 首先我们需要倒入requests模块;
    import requests
    
    1. 接着我们尝试向baidu发起请求;
    r = requests.get('https://www.baidu.com/')
    
    1. 我们现在获得来命名为r的response对象,从这个对象中我们便可以获取到很多信息,如:
    • 状态码,200即为请求成功
    • 页面Html5代码
    # 返回请求状态码,200即为请求成功
    print(r.status_code)
    
    # 返回页面代码
    print(r.text)
    
    # 对于特定类型请求,如Ajax请求返回的json数据
    print(r.json())
    
    1. 当然对于大部分网站都会需要你表明你的身份,我们一般正常访问网站都会附带一个请求头(headers)信息,里面包含了你的浏览器,编码等内容,网站会通过这部分信息来判断你的身份,所以我们一般写爬虫也加上一个headers
    # 添加headers
    headers = {'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit'}
    r = requests.get('https://www.baidu.com/', headers=headers)
    
    1. 针对post请求,也是一样简单;
    # 添加headers
    headers = {'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit'}
    
    # post请求
    data = {'users': 'abc', 'password': '123'}
    r = requests.post('https://www.weibo.com', data=data, headers=headers)
    
    1. 很多时候等于需要登录的站点我们可能需要保持一个会话,不然每次请求都先登录一遍效率太低,在requests里面一样很简单;
    # 保持会话
    # 新建一个session对象
    sess = requests.session()
    # 先完成登录
    sess.post('maybe a login url', data=data, headers=headers)
    # 然后再在这个会话下去访问其他的网址
    sess.get('other urls')
    

    beautifulsoup

    当我们通过requests获取到整个页面的html5代码之后,我们还得进一步处理,因为我们需要的往往只是整个页面上的一小部分数据,所以我们需要对页面代码html5解析然后筛选提取出我们想要对数据,这时候beautifulsoup便派上用场了。
    beautifulsoup之后通过标签+属性的方式来进行定位,譬如说我们想要百度的logo,我们查看页面的html5代码,我们可以发现logo图片是在一个div的标签下,然后class=index-logo-srcnew这个属性下。
    百度
    所以我们如果需要定位logo图片的话便可以通过divclass=index-logo-srcnew来进行定位。
    下面也会提供一些简单的示例来说明beautifulsoup的基本用法:

    1. 导入beautifulsou模块;
    from bs4 import BeautifulSoup
    
    1. 对页面代码进行解析,这边选用对html代码是官方示例中使用的爱丽丝页面代码;
    html = """
    <html><head><title>The Dormouse's story</title></head>
    <body>
    <p class="title" name="dromouse"><b>The Dormouse's story</b></p>
    <p class="story">Once upon a time there were three little sisters; and their names were
    <a href="http://example.com/elsie" class="sister" id="link1"><!-- Elsie --></a>,
    <a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and
    <a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>;
    and they lived at the bottom of a well.</p>
    <p class="story">...</p>
    """
    # 选用lxml解析器来解析
    soup = BeautifulSoup(html, 'lxml')
    
    1. 我们现在获得一个命名为soupBeautifulsoup对象,从这个对象中我们便能定位出我们想要的信息,如:
    # 获取标题
    print(soup.title)
    
    # 获取文本
    print(soup.title.text)
    
    # 通过标签定位
    print(soup.find_all('a'))
    
    # 通过属性定位
    print(soup.find_all(attrs={'id': 'link1'}))
    
    # 标签 + 属性定位
    print(soup.find_all('a', id='link1'))
    

    打印结果如下:

    <title>The Dormouse's story</title>
    The Dormouse's story
    [<a class="sister" href="http://example.com/elsie" id="link1"><!-- Elsie --></a>, <a class="sister" href="http://example.com/lacie" id="link2">Lacie</a>, <a class="sister" href="http://example.com/tillie" id="link3">Tillie</a>]
    [<a class="sister" href="http://example.com/elsie" id="link1"><!-- Elsie --></a>]
    [<a class="sister" href="http://example.com/elsie" id="link1"><!-- Elsie --></a>]
    

    案例分享

    获取17173新游频道下游戏名

    • 定位我们所需要的信息,记住html里面的位置。

    这边可以分享一个小技巧,以前我刚开始写爬虫的时候,寻找代码里面的信息都是先去把整个页面给down下来,然后再在里面Ctrl+F查找,其实大部分浏览器都提供了很简单的方法来定位页面代码位置的,这边会以Chrome浏览器为例。

    为了方便理解录制了一个gif,具体步骤如下:

    1. F12打开控制台,选择element标签查看页面代码;
    2. 点击控制台左上角箭头,然后点击页面上我们需要的信息,我们可以看到控制台中页面代码直接跳转到对应的位置;
    3. 页面代码中一直向上选择标签直至囊括我们需要的所有信息;
    4. 记住此时的标签以及熟悉等信息,这将会用于后面解析筛选数据。
    • 接下来便可以开始敲代码了,完整代码如下,对于每个步骤均有详细的注释:
    from bs4 import BeautifulSoup
    import requests
    
    
    # 页面url地址
    url = 'http://newgame.17173.com/game-list-0-0-0-0-0-0-0-0-0-0-1-2.html'
    
    # 发送请求,r为页面响应
    r = requests.get(url)
    
    # r.text获取页面代码
    # 使用lxml解析页面代码
    soup = BeautifulSoup(r.text, 'lxml')
    
    # 两次定位,先找到整个信息区域
    info_list = soup.find_all(attrs={'class': 'ptlist ptlist-pc'})
    
    # 在此区域内获取游戏名,find_all返回的是list
    tit_list = info_list[0].find_all(attrs={'class': 'tit'})
    
    # 遍历获取游戏名
    # .text可获取文本内容,替换掉文章中的换行符
    for title in tit_list:
        print(title.text.replace('\n', ''))
    

    获取拉勾网职位信息

    目前很多网站上的信息都是通过Ajax动态加载的,譬如当你翻看某电商网站的评论,当你点击下一页的时候,网址并没发生变化,但上面的评论都变了,这其实就是通过Ajax动态加载出来的。
    这里的下一页➡️按钮并不是只想另外一个页面,而是会在后台发送一个请求,服务器接收到这个请求之后会在当前页面上渲染出来。
    其实我自己是比较偏爱爬这种类型的数据的,因为统计Ajax请求返回来的数据都是非常规整的json数据,不需要我们去写复杂的表达式去解析了。
    接下来我们将会通过一个拉勾网职位信息的爬虫来说明这类网站的爬取流程:

    1. F12打开控制台,然后搜索‘数据分析’,注意一定是先打开控制台,然后再去搜索,不然请求信息是没有记录下来的。
    2. 然后我们去Network标签下的XHR下查找我们需要的请求(动态加载的数请求都是在XHR下);
    3. 然后我们切换到headers标签下,我们可以看到请求的地址和所需到参数等信息;
    4. 实验几次之后我们便能发现这三个参数的含义分别是:
    • first:是否首页
    • pn:页码
    • kd:搜索关键词
    1. 正常来说我们直接向这个网址传firstpn,kd三个参数就好了,不过尝试了几次之后发现拉勾有如下比较有意思的限制:
      • headers里面referer参数是必须的,referer是向服务器表示你是从哪个页面跳转过来的;
      • 必须得先访问这个referer的网址,然后再去请求职位信息的API。
    • 代码如下,也很简单,不过三十几行:
    import requests
    
    
    class Config:
        kd = '数据分析'
        referer = 'https://www.lagou.com/jobs/list_%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90?labelWords=&fromSearch=true&suginput='
        headers = {
            'Accept': 'application/json, text/javascript, */*; q=0.01',
            'Referer': referer,
            'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/'
                          '537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36'}
    
    
    class Spider:
    
        def __init__(self, kd=Config.kd):
            self.kd = kd
            self.url = Config.referer
            self.api = 'https://www.lagou.com/jobs/positionAjax.json'
            
            # 必须先请求referer网址
            self.sess = requests.session()
            self.sess.get(self.url, headers=Config.headers)
    
        def get_position(self, pn):
            data = {'first': 'true',
                    'pn': str(pn),
                    'kd': self.kd
                    }
            # 向API发起POST请求
            r = self.sess.post(self.api, headers=Config.headers, data=data)
            
            # 直接.json()解析数据
            return r.json()['content']['positionResult']['result']
    
        def engine(self, total_pn):
            for pn in range(1, total_pn + 1):
                results = self.get_position(pn)
                for pos in results:
                    print(pos['positionName'], pos['companyShortName'], pos['workYear'], pos['salary'])
    
    
    if __name__ == '__main__':
        lagou = Spider()
        lagou.engine(2)
    
    • 附上执行结果:
    数据分析-客服中心(J10558) 哈啰出行 3-5年 9k-15k
    大数据分析师 建信金科 3-5年 16k-30k
    ......
    数据分析师-【快影】 快手 3-5年 15k-30k
    数据分析师(业务分析)-【商业化】 快手 3-5年 20k-40k
    数据分析师 思创客 1-3年 6k-12k
    展开全文
  • python3爬虫教程.zip

    2020-12-27 19:22:03
    python3爬虫教程.zip
  • python网络爬虫教程

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

    2020-11-09 22:26:20
    该资源提供学习使用,基于python的爬虫教程,对python编程 需要有一定的基础,才能进行操作。
  • python入门爬虫教程汇总

    千次阅读 多人点赞 2019-02-20 21:08:25
    我的CSDN入门爬虫教程汇总: python爬虫教程(1)-爬虫的好处 python爬虫教程(2)-编写你的第一个爬虫 python爬虫教程(3)-requests爬取静态网页 python爬虫教程(4)-正则表达式解析网页 python爬虫教程(5)-...
  • Pyspider爬虫教程

    2018-11-23 11:57:40
    Pyspider爬虫教程 https://www.cnblogs.com/ruqinzhe/p/7569985.html
  • Python爬虫教程-01-爬虫介绍
  • Python爬虫教程-34-分布式爬虫介绍

    万次阅读 2018-09-05 21:51:06
    Python爬虫教程-34-分布式爬虫介绍 分布式爬虫在实际应用中还算是多的,本篇简单介绍一下分布式爬虫 什么是分布式爬虫 分布式爬虫就是多台计算机上都安装爬虫程序,重点是联合采集。单机爬虫就是只在一台...
  • Python爬虫教程千万别错过!!来自千锋资深Python讲师,希望对你有帮助~
  • Python基础教程及爬虫教程,附有代码及工程项目,来自传智播客实训,
  • pyspider 爬虫教程

    千次阅读 2016-12-26 15:16:19
    pyspider 爬虫教程(一):HTML 和 ...不过,没想到这个教程居然会变成一篇译文,在这个爬虫教程系列文章中,会以实际的例子,由浅入深讨论爬取(抓取和解析)的一些关键问题。 在 教程一 中,我们将要爬取的网站是
  • scrapy 爬虫教程

    2019-01-15 18:11:11
    scrapy 爬虫教程 一. 环境配置 使用pipenv虚拟环境: 1. 进去项目目录处 cd /Users/xiaoyigege/Desktop/Python/ptest 2. 安装pipenv环境和scrapy框架 安装环境 pipenv install 更换源 url = ...
  • python爬虫教程系列、从0到1学习python爬虫,包括浏览器抓包,手机APP抓包,各种爬虫涉及的模块的使用,如:requests、beautifulSoup、selenium、appium、scrapy等,以及IP代理,验证码识别,Mysql,MongoDB数据库的...
  • Python爬虫教程合集

    2020-10-22 20:24:11
    大家好,我是免费哥。...今天给大家带来的学习资料是:Python爬虫教程合集 网络爬虫又称网络蜘蛛、网络蚂蚁、网络机器人等,可以按照我们设置的规则自动化爬取网络上的信息,这些规则被称为爬虫算法。
  • node爬虫教程

    千次阅读 2018-08-10 23:02:40
    最近几天在公司一直在抓别的网站的数据, 今天闲来无事, 想写一个简单的node爬虫教程, 简单易学, 简单几步就可以实现, 可以控制并发, 请求频率等, 我是使用的node-cralwer这个框架写的, 当然使用原生的request模块也...
  • 实验楼的爬虫教程不是太多,但是都有详细的讲解和代码,而且有在线开发环境,对于学习者是非常不错的。其中最喜欢的就是那个,因为我自己超喜欢看电影。还有一个也挺好的 ,算是福利吧,哈哈。这是一个收集各种爬虫 ...
  • Python爬虫教程-30-Scrapy 爬虫框架介绍

    万次阅读 2018-09-03 23:41:54
    Python爬虫教程-30-Scrapy 爬虫框架 框架:框架就是对于相同的相似的部分,代码做到不出错,而我们就可以将注意力放到我们自己的部分了 常见爬虫框架: scrapy pyspider crawley Scrapy 是一个为了爬取网站数据,...
  • Python爬虫教程+书籍分享

    千次阅读 2018-11-29 11:56:26
    Python爬虫教程+书籍分享 Python爬虫教程+书籍分享 Python爬虫教程+书籍分享 下载地址:百度网盘
  • 最近一段时间没有怎么更新公众号,主要就是在做爬虫教程的一些准备工作,看看爬虫需要用到那些技术,然后做个计划出来,确定一下学习课程中缝,这不今天就先列出一些玩爬虫需要的准备工作! python爬虫这门技术你可以做...
  • Python爬虫教程-31-创建 Scrapy 爬虫框架项目 首先说一下,本篇是在 Anaconda 环境下,所以如果没有安装 Anaconda 请先到官网下载安装 Anaconda 下载地址:https://www.anaconda.com/download/ Scrapy 爬虫...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,419
精华内容 4,167
关键字:

爬虫教程

爬虫 订阅