勤学思培训网CSDPAL
  • 终于知道python爬虫能够干什么

    网络爬虫另外一些不常使用的名字还有蚂蚁,自动索引,模拟程序或者蠕虫。下面是小编为您整理的关于python爬虫能够干什么,希望对你有所帮助。


    [图片0]

    python爬虫能够干什么

    爬虫可从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。如果把整个互联网当成一个网站,那么网络蜘蛛就可以用这个原理把互联网上所有的网页都抓取下来。

    2.网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁,自动索引,模拟程序或者蠕虫。

    爬虫的基本流程:

    用户获取网络数据的方式:

    方式1:浏览器提交请求--->下载网页代码--->解析成页面

    方式2:模拟浏览器发送请求(获取网页代码)->提取有用的数据->存放于数据库或文件中

    爬虫要做的就是方式2;

    1、发起请求

    使用http库向目标站点发起请求,即发送一个Request

    Request包含:请求头、请求体等

    Request模块缺陷:不能执行JS 和CSS 代码

    2、获取响应内容

    如果服务器能正常响应,则会得到一个Response

    Response包含:html,json,图片,视频等

    3、解析内容

    解析html数据:正则表达式(RE模块),第三方解析库如Beautifulsoup,pyquery等

    解析json数据:json模块

    解析二进制数据:以wb的方式写入文件

    4、保存数据

    数据库(MySQL,Mongdb、Redis)

    文件

    三、http协议 请求与响应

    Request:用户将自己的信息通过浏览器(socket client)发送给服务器(socket server)

    Response:服务器接收请求,分析用户发来的请求信息,然后返回数据(返回的数据中可能包含其他链接,如:图片,js,css等)

    ps:浏览器在接收Response后,会解析其内容来显示给用户,而爬虫程序在模拟浏览器发送请求然后接收Response后,是要提取其中的有用数据。

    四、 request

    1、请求方式:

    常见的请求方式:GET / POST

    2、请求的URL

    url全球统一资源定位符,用来定义互联网上一个唯一的资源 例如:一张图片、一个文件、一段视频都可以用url唯一确定

    url编码

    /s?wd=图片

    图片会被编码(看示例代码)

    网页的加载过程是:

    加载一个网页,通常都是先加载document文档,

    在解析document文档的时候,遇到链接,则针对超链接发起下载图片的请求

    3、请求头

    User-agent:请求头中如果没有user-agent客户端配置,服务端可能将你当做一个非法用户host;

    cookies:cookie用来保存登录信息

    Python爬虫常用的几种数据提取方式

    python爬虫的几种数据提取方式:正则 ,bs4,pyquery,xpath,cssselector。


    [图片1]

    知识点:

    findall 返回的结果是列表套元组的形式

    而search一般要加group(), groups(),

    可以将正则的搜索域不再是一行,而是整个HTML字符串

    .*? 非贪婪匹配 .*贪婪匹配

    二, Beautifulsoup

    obj = BeautifulSoup(html, "lxml")

    BeautifulSoup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象

    知识点:

    获得标签的某个属性: .get()

    获得标签内部的文字: .string . strings .stripped_strings .get_text()

    .string: 如果一个标签里面没有标签了,那么 .string 就会返回标签里面的内容。如果标签里面只有唯一的一个标签了,那么 .string 也会返回最里面的内容

    .strings: 获取多个内容,返回结果是生成器,需要遍历获取

    .stripped_strings输出的字符串中可能包含了很多空格或空行,使用 .stripped_strings可以去除多余空白内容

    通过css筛选元素: .select()

    .select():返回的是list

    遍历文档树:

    获取tag的子节点: .contents 返回的是list .children返回的是listiterator object

    PyQuery

    爬虫是什么?

    如果我们把互联网比作一张大的蜘蛛网,数据便是存放于蜘蛛网的各个节点,而爬虫就是一只小蜘蛛,

    沿着网络抓取自己的猎物(数据)爬虫指的是:向网站发起请求,获取资源后分析并提取有用数据的程序;

    从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HTML代码/JSON数据/二进制数据(图片、视频) 爬到本地,进而提取自己需要的数据,存放起来使用。