1 Star 1 Fork 0

泡泡时空 / CSharpCrawler

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

C#爬虫项目

CSharpCrawler

GitHub stars All releases Github forks All issues

CSharpCrawler :spider:

关于项目

C#开发爬虫的知识总结,目前还在更新中。这并不是一个完整的爬虫程序,只是一些示例。

为什么要拿C#开发爬虫项目,因为个人还是比较喜欢C#。C#虽然库少一点,但想要的功能基本还是能实现的。
总结的知识点如果什么错误之处,还恳请大家提个issue指正,一起学习进步♂( ̄▽ ̄)/

功能介绍

  • 基础知识

  • 网页抓取原理

    • 使用套接字来获取网页源码
  • 法律与道德约束

  • 抓取网页

    • HttpWebRequest类的使用
    • HttpClient类的使用
    • 获取指定url的IP地址
    • 获取指定url的网页头信息
    • 如何从网页源码中提取页面的编码
  • 抓取动态网页

    • 使用CEFSharp来抓取动态网页
    • 使用WebBrowser(IE)来抓取动态网页
    • 使用Puppeteer来抓取动态网页
    • 使用Selenium来抓取动态网页
  • WebAPI调用

    • 获取实时天气

      • 调用中国天气网公开API接口来获取天气
    • 获取Bing每日图片

      • 调用cn bing API接口来获取Bing每日图片
  • 获取网页DOM

  • 使用CSS选择器和XPath选取元素

    • CSS选择器
    • XPath
  • 正则表达式的使用

    • 正则表达式的基础知识和基本使用;
    • 正则表达式中的分组构造;
    • 常用匹配模式;
  • Url抓取(当Url太多时,UI会卡)

    • 抓取指定网址的全部链接
    • 通过指定深度,抓取子网页的全部链接
    • 动态网页链接抓取
    • 限定抓取当前页面的子链接
  • 图片抓取

    • 抓取指定url页面中的图片,通过配置url的页码规则,来进行翻页。
    • 自动获取下一页
  • 文件下载

    • 使用WebClient类下载文件
    • 多线程下载文件
    • 从文件加载批量下载
  • 多线程抓取

  • 抓包工具使用

  • 模拟登录并获取登录后的内容

    • 使用Cookie(实现中)
    • 使用Selenium(实现中)
      • 说明:示例程序使用的是EdgeDriver,所以需要Windows10系统,如果需要其它浏览器Driver,可自行修改。
      • 测试系统:Windows 10 1703 Edge 15.15063.0,如果Edge驱动版本不一致,需要手动更新至对应的版本。
  • 必应图片搜索(仅供交流学习使用,请勿用作商业用途)

    • 实现必应图片搜索的功能
    • 翻页及优化(待更新)
  • 爬虫数据存储

    • Berkeley DB

      • 介绍BerkeleyDB以及使用方式
    • SQLite

      • 介绍SQLite以及使用方式
  • 小例子-全国家常菜价格统计(仅供交流学习使用,请勿用作商业用途)

    • 获取全国城市,以及城市代码
    • 抓取家常菜价格
    • 生成统计图表
  • 小例子-通用抓取

    • 电商类网站
    • 新闻类网站(待更新)
  • 将网页保存为图片/PDF

Roadmap

  • Url Encode/Decode 原理
  • 抓包工具Charles的使用
  • 使用抓包工具分析网站接口
  • 使用抓包工具分析APP接口
  • 验证码识别(字符验证码,滑块验证码)
  • BloomFilter算法
  • NLP基础
  • 中文分词
  • Lucene.net使用
  • 优先级队列实现
  • 基本爬虫架构
  • 分布式爬虫架构
  • 抓取豆瓣书评
  • 当抓取的数据到非常大的的数量级时该怎么处理
  • 使用代理

开发环境

Visual Studio 2013 + .Net 4.5
Visual Studio 2015 + .Net 4.5.2
Visual Studio 2017 + .Net 4.7.2

如果没有安装Blend SDK,GAC中没有System.Windows.Interactivity.dll,需要自己引用bin/x64/Debug目录下的System.Windows.Interactivity.dll

编译时可能会显示各种库找不到,Nuget还原下包就可以正常编译了

更新CEF至85.3.130版本后,会出现找不到ChromiumWebBrowser的问题。解决方法是:还原Nuget包后重新打开项目

Berkeley DB需要引用bin/x64/Debug目录下的libdb_dotnet181.dll,运行时还需要libdb_csharp181.dll和libdb181.dll,已置于bin/x64/Debug目录下

使用的三方组件

软件截图

start up

start up

start up

file download

file download

file download

License

MIT License.

MIT License Copyright (c) 2019 ZTI Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

C#爬虫示例程序,想学习爬虫入门知识的可以看过来。后续会慢慢加入更多爬虫相关的知识。 展开 收起
C# 等 2 种语言
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/lanicon/CSharpCrawler.git
git@gitee.com:lanicon/CSharpCrawler.git
lanicon
CSharpCrawler
CSharpCrawler
master

搜索帮助