05.14 python爬虫

装两个文件:



.



解压第一个文件,建议是磁盘之下,然后配置环境变量,开发安装工具都需要配,变量名:CMAKE_HOME

变量值: D:\cmake-3.11.1-win64-x64

找到path(上面的):没有就新建

编辑:加英文分号:%CMAKE_HOME%\bin

命令窗口:输cmake,看是否成功cmake.exe 也可以,扩展名可以省略


在安装Ana...:

启动Anaconda  prompt:必须是10版本以上

扫描二维码关注公众号,回复: 940002 查看本文章

pip  -V查看版本     10版本以上,如果是9,执行pip  install  --upgrade  pip 升级,如果不行,执行easy_install  pip  在执行:pip install scrapy

安装scrapy:pip install scrapy



开始体验:

1.创建scrapy工程

    创建一个目录

    在目录路径下:执行scrapy startproject  工程名称(python5)

    cd工程名称:

    dir查看文件

    执行scripy genspider   蜘蛛名(ktou)  kgc.cn     爬虫就是蜘蛛

2.用pycharm打开工程文件ktou.py



css选择器:

    #name      --id选择器

    .class    --类选择器

    div  --标签

    a>b  --父子选择器

    a  b  --后代选择器

    a+b  --紧邻的一个兄弟选择器

    a~b  --兄弟选择器   a同辈的选择器

    a[b=c]  --属性选择器

    a.b   --筛选选择器  a中存在b样式

    a,b  --组合选择器


xpath选择器:

    //div   --找到网页中任意位置的所有div

    /html  --找到根目录html

    ./div   --当前位置div

    /html/body   --html下的所有body

    /html/body[1]   --html下的第一个body


两种运行方式:

1.命令行运行:scrapy crawl ktou

如果出现:No module named 'win32api'    --命令窗口pip  install pypiwin32


2.在pycharm中编写脚本直接运行代码:比较方便



例子:爬虫是大数据获取手段之一。

求课工场课程总共赚多少钱:

    先爬虫,将人数和单价爬出来,在保存数据库中,在通过ma'p'reduce,rdd统计最高的,总共的,数据结果。



.

爬取代码:
# -*- coding: utf-8 -*-
import scrapy
import re

class KtouSpider(scrapy.Spider):
    name = 'ktou'
    allowed_domains = ['kgc.cn']
    start_urls = ['http://kgc.cn/']
    def parse(self, response):
        #通过css选择器和xpath选择器解析内容
        headline=response.css('h2.headline-title::text').extract_first()#返回数组,抽取数组中的一个
        print(headline)
        news=response.css('h2.headline-title+ul>li a::text').extract()
        news_href=response.css('h2.headline-title+ul>li a::attr(href)').extract()#属性选择器
        #组合在一起打印
        datas=zip(news[:-1],news_href[:-1])
        for new in datas:#是元组
            print(new)
            yield response.follow(new[1],self.detail)#跟随地址继续爬
    def detail(self,response):
        print('开始解析')
        txt=response.css('div.card-con.f14.fix.kgc-ofx-a').extract_first()
        p='<[^>]+>'#去标签,以尖括号开头,不能以尖括号结尾的任意字符,最后以尖括号结尾  <高兴>这里的
        #尖括号是$lt;小于大于
        txt=re.subn(p,'',txt)#替换
        print(txt[0])




.


猜你喜欢

转载自blog.csdn.net/gaoshiqi5322688/article/details/80313060