1568439161003

概念了解

现在学前端有些浪费时间了,因为你要发展 Python 网络爬虫 方向,基本上是不用写前端了。如何要做逆向工程,则需学习 JavaScript

1568439274771

语言 解析
HTML HTML 是描述网页的语言,(超文本标记语言),并不是编程语言。
CSS CSS 层叠样式表,用来修饰页面。
JavaScript JavaScript 网络脚本语言,用来和用户进行交互。
合集 HTML 就是类似于骨架,CSS 就类似于给 HTML 穿上衣服。

1568440046844


CSS 、 HTML大家除非有兴趣,不然没必要去学,只要能看懂就好。

重点是在:JavaScript

1568440186148


我个人建议买红色的 JavaScript 比较实用。

1568440299923

Ajax 其实是 JS 的升级版,我们都知道异步编程吧,Python 有异步编程,那 JavaScript 肯定也有异步编程。所以,在 JavaScript 中,它的异步编程就是 Ajax。在 Python 当中的异步编程就叫 :sync。

1568440501270


1568440592074

我们页面不需要刷新,URL 也没有变化,但我们的内容在不断的刷新。

也就是,我们在浏览页面的同时,后面也发起了许多请求。

我们要抓取这样的网站,就要去看的 Json,但是我们前面主要涉及理论知识,后面才有实际操作。

我们要学会原理,如果你只是懂得使用工具而不知道原理是很容易被取代的。

接下来我们找一下接口:右键 >>> 检查 >>> Network,清空,然后重新请求一下:

清空:

1568441189540

1568441269683

然后,你可以不断的滚动页面并观察开发者模式的变化。

我们看一下里面的 preview

1568441450947

可以看到,这里面就是 Json 文件,图片网址也都在里面了。

1568441537650

一遇到这个 Ajax 我们就去找接口就好并观察规律。(找到接口并改变参数就可以咯)

接下来看一下我们要请求的网址是什么:

1568441410029

1568441702261

给你们看一下实现的代码:

1568441741375

看,就是30为间隔哦:

1568441911518

实际爬取:

1568442784754

源代码:

# -*- coding: utf-8 -*-
# @Author     :AI悦创
# @DateTime   :2019/9/14  14:16 
# @FileName   :baidu_image.PY
# @Function   :功能
# Development_tool   :PyCharm
# <-------import data-------------->
# 分析 URL:
# http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=%E9%BE%99%E5%A5%B3%E4%BB%86&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=0&ic=0&hd=0&latest=0&copyright=0&word=%E9%BE%99%E5%A5%B3%E4%BB%86&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&expermode=&force=&pn=30
# http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=%E9%BE%99%E5%A5%B3%E4%BB%86&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=0&ic=0&hd=0&latest=0&copyright=0&word=%E9%BE%99%E5%A5%B3%E4%BB%86&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&expermode=&force=&pn=60
# http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=%E9%BE%99%E5%A5%B3%E4%BB%86&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=0&ic=0&hd=0&latest=0&copyright=0&word=%E9%BE%99%E5%A5%B3%E4%BB%86&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&expermode=&force=&pn=90
import requests
import re
imgs = re.compile('http://img.*?\.jpg')
url = 'http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&' \
      'queryWord=%E9%BE%99%E5%A5%B3%E4%BB%86&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=0&ic=0&hd=0&' \
      'latest=0&copyright=0&word=%E9%BE%99%E5%A5%B3%E4%BB%86&s' \
      '=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&expermode=&force=&pn=30'
def get_json():
    html = requests.get(url)
    # results = re.findall(imgs, html.text)
    results = imgs.findall(html.text)
    print(requests)
    for i in results:
        print(i)

if __name__ == '__main__':
    get_json()


# 输出
"C:\Program Files\Python37\python.exe" D:/daima/pycharm_daima/爬虫大师班/baidu_image.py
<module 'requests' from 'C:\\Program Files\\Python37\\lib\\site-packages\\requests\\__init__.py'>
http://img0.imgtn.bdimg.com/it/u=3046754844,2948369608&fm=26&gp=0.jpg
http://img0.imgtn.bdimg.com/it/u=3046754844,2948369608&fm=26&gp=0.jpg
http://img0.imgtn.bdimg.com/it/u=3046754844,2948369608&fm=26&gp=0.jpg
http://img3.imgtn.bdimg.com/it/u=3049179571,2987741874&fm=26&gp=0.jpg
中间大部分图片链接省略:
    ......

http://img4.imgtn.bdimg.com/it/u=3206361450,4144166066&fm=26&gp=0.jpg
http://img4.imgtn.bdimg.com/it/u=2125255277,1364020877&fm=26&gp=0.jpg
http://img4.imgtn.bdimg.com/it/u=2125255277,1364020877&fm=26&gp=0.jpg
http://img4.imgtn.bdimg.com/it/u=2125255277,1364020877&fm=26&gp=0.jpg
http://img2.imgtn.bdimg.com/it/u=852467031,2928001655&fm=26&gp=0.jpg
http://img2.imgtn.bdimg.com/it/u=852467031,2928001655&fm=26&gp=0.jpg
http://img2.imgtn.bdimg.com/it/u=852467031,2928001655&fm=26&gp=0.jpg

进程已结束,退出代码 0

1568443021582

AI悦创·创造不同!
AI悦创 » 补充:简单普及「阅读即可」

Leave a Reply