爬虫之概述

概述#

抓取网络资源的机器人

一、概述#

1.定义#

网络蜘蛛、网络机器人、抓取网络资源的程序

其实就是用python程序模拟人为点击浏览器并访问网站,而且模仿的月逼真越好

2. 目的#

  • 获取大量数据,用来做数据分析
  • 公司项目的测试数据,公司业务所需数据

企业获取数据的方式

  • 公司自有数据
  • 第三方品台购买(数据堂、贵阳大数据交易所)
  • 爬虫爬取数据(第三方平台没有或者价格太高)

3. 优势#

  • Python:请求模块、解析模块丰富成熟,强大的Scrapy网络爬虫框架
  • PHP:对线程、异步支持不太好
  • JAVA:代码笨重、代码量大
  • C/C++:虽然效率高,但是代码成型慢

4. 分类#

  • 通用网络爬虫(搜索引擎使用,遵循robots协议)

    robots协议:网站通过robots协议告诉搜索引擎哪些页面也可抓,哪些不能抓

    通用网络爬虫需要遵循robots协议(君子协议)

  • 聚焦网络爬虫:自己写的爬虫程序

二、编码问题#

万能方法

import requests
html = requests.get(url="http:www.cnblogs.com/chancey/")
html = html.content.decode("utf-8")

在Windows上新建的任何数据文件都是国标编码,而在Linux上创建的文件都是utf-8编码

互转方法

在Windows上

在Linux上

import csv
with open("test.csv", "w") as f:
    writer = csv.writer(f)
    # 写一行(列表嵌套)
    writer.wrterow(["小明", 25])
    # 写多行(列表里面嵌套元组)
    writer.wrterows([("小红", 18), ("小黑", 20), ("小花", 36)])
import csv

with open("test.csv", "w") as f:
    writer = csv.writer(f)

    # 写一行
    writer.writerow(["小明", 25])
    writer.writerow(["小小", 7])

    # 写多行
    writer.writerows([("小红", 18), ("小黑", 20), ("小花", 36)])
    writer.writerows([("小瓜", 18), ("小洋", 20), ("小菲", 36)])

如果将这段代码cv到Windows机器上,会出现如下的情况

莫名其妙会出现空行,改动代码,即添加参数即可

with open("demo.csv", "w", newline="") as f

三、持久化#

四、基本思路#

class Spider(object):
    def __init__ (self:)
    	# 初始化所有变量
    	pass
    def get_page (self):
        # 获取源码
        pass
    def parse_page (self):
        # 解析源码
        pass
    def write_page (self):
        # 保存数据
        pass
    def main (self):
        # 主函数
        pass
if __name__ == "__main__":
    spider = Spider()
    spider.main()

作者:ChanceySolo

出处:https://www.cnblogs.com/chancey/p/11479244.html

版权:本作品采用「ChanceySolo-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   ChanceySolo  阅读(197)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示