python爬虫

       网络pa虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
      自己理解的含义:通过代码、模拟浏览器上网 然后抓取数据的过程


       爬虫是否合法?
             1.法律允许
             2.有法律风险的


       爬虫的分类:
    1.获取一整张页面 【通用爬虫】
    2.获取一整张页面 部分数据 【聚焦爬虫】
    3.检查页面更新、获取页面最新的更新的数据 【增量式爬虫】


      爬虫的规则:
     1.反爬策略:
                 门户网站 通过 技术手段 防止爬虫程序对页面爬取数据
     2.反 反爬策略
                 爬虫程序 通过 技术手段 对页面爬取数据


     http 与https 
                 service 与 client 进行数据交互的一种形式
     request: 
                  User-Agent: 请求载体的身份标识
     response: 
                  Content-Type:服务器响应client的数据类型


       爬虫技术
    1.urllib 【老】
    2.requests 【好用】

requests:
    1.是什么
        python自带的 基于网络请求的模块 功能强大 简单高效
    2.干什么
        模拟浏览器发送请求
    3.怎么用:
        1.指定url
        2.发送请求【get、post】
        3.获取相应的数据
        4.存储数据

    pip install requests 

如何获取一整张页面的部分内容?
    1.整个html + html数据解析
    2.获取部分html

数据解析: 
1.为什么要进行数据解析? 
    1.为了获取指定的页面数据

html 
2.数据解析分类: 
    1.正则 
    2.bs4 
    3.xpath    scrapy 

3.解析的数据有哪些?
    1.数据源:
        html 
    2.文本 或者 图片 =》 html标签里面 或者 标签的属性

4.如何解析? 
    1.标签定位 
    2.解析数据

5.聚焦爬虫?
    1.指定url 
    2.发起请求
    3.获取相应数据
    4.数据解析
    5.存储数据

bs4: 
    数据解析的工具 

原理: 
    1.标签定位 
    2.解析数据    

怎么用:
    1.实例化bs4类 BeautifulSoup => 加载 html
    2.调用api 标签定位+ 解析数据

pip install bs4 -i https://pypi.douban.com/simple 

使用:
    bs4 api 


例子:pa取大连肯德基店铺

import requests
if __name__ == '__main__':
    # 1.url
    url = "http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword"
    # ?type = 13 & interval_id = 100:90 & action = & start = 0 & limit = 20
    parms = {
              "cname":"大连",
              "pid": "",
              "keyword":"大连",
              "pageIndex": "1",
              "pageSize": "10",
    }
    # ua 伪装 =》 模拟浏览器上网
    headers = {
        "User-Agent": 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36'
    }
    # 2.发送请求
    response = requests.get(url=url, params=parms, headers=headers)
    # 3.获取页面数据
    page_text = response.text

    # 4.存储数据
    with open('D:\pycharm\PythonProject\PythonProject2\python_wyx\大连肯德基位置.txt', 'w', encoding="utf-8") as fp:
        fp.write(page_text)

    print("爬取大连肯德基餐厅结束成功!!!!!!!!!!!")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值