认识爬虫,初识爬虫

爬虫的概念

网络爬虫也叫网络蜘蛛,它特指一类自动批量下载网络资源的程序,这是一个比较口语化的定义。
更加专业和全面对的定义是:网络爬虫是伪装成客户端与服务端进行数据交互的程序。

  1. 数据采集
    大数据时代来临,数据就是核心,数据就是生产力,越来越多的企业开始注重收集用户数据,而爬虫技术是收集数据的一种重要手段。
  2. 搜索引擎
    百度,谷歌等搜索引擎都是基于爬虫技术。
  3. 模拟操作
    爬虫也被广泛用于模拟用户操作,测试机器人,灌水机器人等。

爬虫开发的重难点

  1. 数据的获取
    网络公共资源都是为用户准备的,为了避免被爬虫采集,服务端会设置非常多的图灵测试,阻止爬虫的恶意爬取,也即是反爬措施。爬虫开发工程师在开发爬虫时,需要解决这些反爬措施。我们在开发爬虫的过程中,有很大一部分的工作就是处理这些反爬措施。
  2. 采集的速度
    大数据时代,需要巨大的数据量,动辄千万条的级别,甚至上亿条。如果采集速度跟不上,耗时过长,那么就达不到商业要求。一般我们会采取并发以及分布式来解决速度上的问题。这也是爬虫开发过程中的另外一个重心。
import requests
import os,re
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36',
    'referer': 'https://image.baidu.com/search/detail'
}
html_url = 'http://image.baidu.com/search/index?ct=201326592&cl=2&st=-1&lm=-1&nc=1&ie=utf-8&tn=baiduimage&ipn=r&rps=1&pv=&fm=rs5&word=%E8%90%8C%E8%90%8C%E5%93%92%E5%9B%BE%E7%89%87%E7%9A%AE%E5%8D%A1%E4%B8%98&oriquery=%E8%90%8C%E8%90%8C%E7%9A%84%E5%9B%BE%E7%89%87&ofr=%E8%90%8C%E8%90%8C%E7%9A%84%E5%9B%BE%E7%89%87&sensitive=0'
# "thumbURL":"http://img4.imgtn.bdimg.com/it/u=317475481,336973617&fm=15&gp=0.jpg"
urls = re.findall('"thumbURL":"(.*?)"',requests.get(html_url).text)

for index,page_url in enumerate(urls):
    if not os.path.exists('images'):
        os.mkdir('images')
    page_name = 'images/img' + str(index) + '.' + page_url.split('.')[-1]
    pages = requests.get(page_url,headers=headers)
    with open(page_name,'wb') as f:
        f.write(pages.content)
print('ok')

这就是一个爬虫,绝大多数网络爬虫的目标数据都是网页数据。网络爬虫是伴随着互联网的出现而诞生的。我们如果要学习爬虫,我们必须对互联网有较深入的了解。

你可能感兴趣的:(Python)