React 前端导航

浅谈Python爬虫

个人拙见:

        爬虫是一门技术,它的作用就是使用代码,从各个网站/app等网络上请求数据,这个步骤就是爬虫,有一些公司,利用爬虫技术,去某些网站抓取敏感信息,进行存储/分析/利用,但所谓技术无罪,存在即合理,爬虫的存在,也使得我们在使用百度/Google等搜索类产品的时候更方便的获取到我们想要搜索的结果。我们在使用爬虫的时候,尽量去遵守robots协议(爬虫协议),不要去抓取敏感信息,触碰法律的红线。

Python爬虫

python的爬虫,主要是通过requests,urllib等网络请求库,请求网站数据,对获取到的数据进行解析,然后转成需要的数据格式存储起来

 一般情况下,对于网站数据的抓取一共分为两类:

    1.静态数据,一般指的是数据内容是存在于html文件内的,在html加载后数据就直接展示出来了,这种方式的优点是方便搜索引擎收录,同时加载速度快,因为不需要额外请求数据的api,缺点自然就是数据在页面上,针对不同的数据会有不同的页面,其占用的服务器资源就会大。这种格式的网站一般是新闻类的网站居多,而这种数据的抓取就是通过requests库直接请求其html页面,获取到整个页面的html内容,然后通过etree转换成python对应element对象,然后通过Xpath,Beautiful Soup(bs4)等去查到对应标签下的数据,然后取出需要的内容,放到数据格式中,进行后续存储或者数据处理。见下例:

import requests
from lxml import etree
url = 'http://www.news.cn/politics/2022-12/05/c_1129183314.htm'
res = requests.get(url)
text = res.text
html = etree.HTML(text)
title = html.xpath('.//span[@class="title"]/text()')[0]
contents = html.xpath('.//p/font/text()')
print(title)
print(contents)

    2. 动态加载,一般指的是html页面只是一个模版,其数据完全从服务端返回,通过https传递给前端,然后前端去渲染数据展示到页面中,这种方式的优点就是前端只是一个模版,只需要一些对应数据格式的数据,就能展示出来,灵活性大,易于修改,同理,缺点就是如果数据过大或者服务器出现延迟/崩溃等情况,数据就无法加载出来或者加载太慢,需要等很久页面上也会有数据,这种数据的抓取一般有两种方向,第一种就是直接找到给网站提供数据的api,分析其参数,加密方式,是否需要登陆等,模拟用户访问,通过requests库请求此接口,直接拿到数据,这种方法的优点就是抓取速度快,问题就是容易被检测到是爬虫程序导致封ip之类的,还有一种方式就是通过一些浏览器驱动,通过一些库来打开虚拟浏览器页面,然后元素定位,去完成一些登陆,抓取等操作,这种方式的优点就是不用考虑网站的加密等方式,直接虚拟访问页面,模拟真人操作,登陆后取数据,缺点就是抓取速度太慢,成本较高。今天就举一个第一种抓取方向的例子。见下例:
import json
import requests
url = 'https://www.coderutil.com/api/article/recommendList?pageNo=1&pageSize=25'
res = requests.get(url)
text = res.text
data = json.loads(text)
artist_list = data.get('data')
result = []
for artist in artist_list:
  result.append(
    dict(
      id=artist.get('id'),
      title=artist.get('artist'),
      description=artist.get('description'),
      url=f'https://www.coderutil.com/article?id={artist.get("id")}'
    )
)
for i in result:
print(i)

结尾

以上,基本囊括了我所了解的爬虫基础,还有一些python的爬虫相关的知识,比如scrapy框架,封装好请求器,翻页器,解码,ip池,基础反爬等等的一个综合性比较高的爬虫框架,比如redis去重相同数据,比如newspaper这种专门解析新闻的爬虫库,后续有机会的话会一一分享一下。

第一次写,写的不好的地方请担待,写的不对的地方请指正,感谢大家!

声明:本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。邮箱:farmerlzj@163.com。 本站原创内容未经允许不得转载,或转载时需注明出处: 内容转载自: React前端网:https://qianduan.shop/blogs/detail/183
想做或者在做副业的朋友欢迎加微信交流:farmerlzj,公众号:生财空间站。

#python#爬虫

相关推荐

node 爬虫开源项目

常用的node爬虫开源项目介绍

Python装饰器:从入门到实践

Python装饰器是一种非常强大的工具,可以帮助我们在不改变代码逻辑的情况下,对代码进行扩展和修改。在本文中,我们将探讨装饰器的基本概念,以及如何使用它们来解决常见的问题。