zoukankan      html  css  js  c++  java
  • Python爬虫入门

     1 import urllib.request # 连接网络
     2 import urllib.parse # 爬虫传参数
     3 import json # json解析结果
     4 import re # 正则表达式
     5 import math # 生成随机数
     6 
     7 url = '' # 爬虫入口链接
     8 data = {} # 字典类型的参数
     9 
    10 data = urllib.parse.urlencode(data).encode('utf-8') # 处理参数
    11 
    12 req = urllib.request.Request(url,data) # 请求
    13 req.add_header('User-Agent', 'fake-client') # 添加头信息
    14 
    15 res = urllib.request.urlopen(req) # 获得响应信息
    16 html = res.read().decode('utf-8') # 读取响应信息,得到html页面信息
    17 
    18 # 正则表达式中如果有一个括号,那么匹配的内容就取括号里的那段返回列表,
    19 # 如果有多个括号,那么返回的是元组列表
    20 req = re.compile(r'<img.+?src="(.+?.jpg)" width') # 正则表达式匹配页面中的图片链接,.+?这里的?是启用非贪婪模式
    21 
    22 urlsImg = re.findall(req,html) # 从html中获取所有图片链接
    23 
    24 for urlImg in urlsImg:
    25     response = urllib.request.urlopen(urlImg) # 获取链接响应
    26     img = response.read() # 读取响应信息为二进制信息
    27     with open('img_%f.jpg'%(math.random()),'wb') as f:
    28         f.write(img) # 将二进制信息写到xxx.jpg图片里
  • 相关阅读:
    angular7新特性
    ES6基本语法入门
    uni-app 请求封装
    Node.js- Express框架
    webpack知识分享
    【JS】深入理解JS原型和继承
    JavaScript 变量作用域和声明提升
    在元素上写事件和addEventListent()的区别
    webStrom快捷键快速创建React组件
    vue移动端 实现手机左右滑动入场动画
  • 原文地址:https://www.cnblogs.com/suhfj-825/p/8309990.html
Copyright © 2011-2022 走看看