首页 > 编程语言 >Python爬虫快速入门指南

Python爬虫快速入门指南

时间:2022-09-25 22:22:16浏览次数:84  
标签:www 网页 入门 Python 爬虫 https httpbin requests

笔者近期需要使用爬虫技术来爬取某网页上的数据,因此学习了一下Python爬虫技术,正好最近也在学习Javaweb和spring相关技术,借此过程巩固一下相关基础知识。

1 了解基础知识

①Http基础原理

相关定义:URL、port、query、path......

HTTP和HTTPS的区别?SSL?

客户端的服务器请求-响应的过程?

什么是请求?响应?它们的组成-请求头、请求体?

使用网页开发者工具,查看请求/响应的详细过程、相关参数。

②Web网页基础

网页的组成?HTML、CSS、JavaScript?

网页的节点和节点间的关系(解析和提取我们目标内容的关键基础知识)

③爬虫的基本原理

爬虫:获取网页并提取和保存信息的自动化程序

④Session和Cookie

Http的无状态

理解目前网页是动态的,区别于静态html

动态网页需要Session和Cookie,Session和Cookie的基本概念

会话Cookie和持久Cookie

⑤代理的基本原理

为什么需要代理?

常见的代理有哪些?

⑥多线程和多进程的基本原理

理解线程和进程

并发和并行

为什么使用多线程?

2 开始基本库的使用

掌握了第1节中的基础知识,就可以从写简单的爬虫程序开始,逐步深入了解爬虫的原理、使用、案例,最终实现我们的目标工作。

首先,安装配置好Python3环境,并使用pip工具安装相关类库

此链接提供完整的安装教程

Scrape Center

这里介绍一个requests库

requests库的使用

1 发送get请求,将返回结果转化为JSON格式的字典

import requests
​
​
​
data = {'name': 'germey', 'age': '25'}
​
r = requests.post("https://www.httpbin.org/post", data=data)
​
print(r.text)
​
print(r.json())

结果:

{
  "args": {},
  "data": "",
  "files": {},
  "form": {
    "age": "25",
    "name": "germey"
  },
  "headers": {
    "Accept": "*/*",
    "Accept-Encoding": "gzip, deflate",
    "Content-Length": "18",
    "Content-Type": "application/x-www-form-urlencoded",
    "Host": "www.httpbin.org",
    "User-Agent": "python-requests/2.28.1",
    "X-Amzn-Trace-Id": "Root=1-632feafa-1e67dd967da4a55216a9fd7e"
  },
  "json": null,
  "origin": "27.17.104.42",
  "url": "https://www.httpbin.org/post"
}
​
{'args': {}, 'data': '', 'files': {}, 'form': {'age': '25', 'name': 'germey'}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip, deflate', 'Content-Length': '18', 'Content-Type': 'application/x-www-form-urlencoded', 'Host': 'www.httpbin.org', 'User-Agent': 'python-requests/2.28.1', 'X-Amzn-Trace-Id': 'Root=1-632feafa-1e67dd967da4a55216a9fd7e'}, 'json': None, 'origin': '27.17.104.42', 'url': 'https://www.httpbin.org/post'}
<class 'dict'>

2 使用正则表达式,抓取网页特定的文本

import requests
​
import re
​
​
​
r = requests.get('https://ssr1.scrape.center/')
​
pattern = re.compile('<h2.*?>(.*?)</h2>', re.S)
​
titles = re.findall(pattern, r.text)
​
print(titles)

结果:

['霸王别姬 - Farewell My Concubine', '这个杀手不太冷 - Léon', '肖申克的救赎 - The Shawshank Redemption', '泰坦尼克号 - Titanic', '罗马假日 - Roman Holiday', '唐伯虎点秋香 - Flirting Scholar', '乱世佳人 - Gone with the Wind', '喜剧之王 - The King of Comedy', '楚门的世界 - The Truman Show', '狮子王 - The Lion King']

3 爬取图像、视频、音频的方式

import requests
​
​
​
r = requests.get('https://scrape.center/favicon.ico')
​
with open('favicon.ico','wb') as f:
​
  f.write(r.content)

运行结果:

正则表达式

通过request库的学习我们已经可以获取网页的源代码,正则表达式就是从源代码中获取我们的目标字符串的工具。

https://tool.oschina.net/regex

此网站提供了一个非常好用的构建正则表达式的工具

https://www.cnblogs.com/fancy2022/p/16687764.html

JavaScript-正则表达式基础知识

 

希望本文章对正在学习或正准备学习Python爬虫技术的同学有所帮助。


本文参考:《Python3网络爬虫开发实战》 作者:崔庆才

标签:www,网页,入门,Python,爬虫,https,httpbin,requests
From: https://www.cnblogs.com/fancy2022/p/16729179.html

相关文章

  • pipenv_使用pipenv搭建python项目环境
    使用pipenv搭建python项目环境进入pipenv的虚拟环境,然后运行python项目使用pipenv在当前文件夹创建虚拟环境......
  • python-python -m venv创建虚拟环境
    python-mvenv<虚拟环境名称>windows环境进入虚拟环境......
  • CentOS7下安装python3.7
    以原码编译的方式安装1.官网下载python3.7软件包2.上传至Linux中,并解压 tar-zxvfpython-3.7.2.tgz3.安装gcc和python所需依赖yum-yinstallgccyuminstallzli......
  • python之装饰器
    装饰器:=====>要求记住最后的结论装饰器本质上是一个闭包作用:1在不改变原有函数调用的情况下.给函数增加新的功能.2直白:可以在函数前后添加新功能,但是不改原来......
  • 【可视化大屏教程】用Python开发智慧城市数据分析大屏!
    目录一、开发背景二、讲解代码2.1大标题+背景图2.2各区县交通事故统计图-系列柱形图2.3图书馆建设率-水球图2.4当年城市空气质量aqi指数-面积图2.5近7年人均生产总值......
  • python之闭包
    闭包:本质,内层函数对外层函数的局部变量的使用.此时内层函数被称为闭包函数1.可以让一个变量常驻与内存2.可以避免全局变量被修改案例:deffunc():a=10......
  • mitudesk的python日记 异常
    一、python中的异常1.BaseException:这个异常类型就是所有异常的基类,在自定义异常类时也需要去继承这个类,当使用它作为异常捕获的类型时就会自动捕获所有异常。不知道是啥......
  • python基础
    博客目录基础python前言pycharm安装虚拟环境介绍python入门......
  • Python核心编程 pdf
    高清扫描版下载链接:https://pan.baidu.com/s/1Gh4hoOS2-5RDSryA_mLqng点击这里获取提取码 ......
  • Python开发技术详解 pdf
    高清扫描版下载链接:https://pan.baidu.com/s/1q4AzavUAb53C6nu490Wozw点击这里获取提取码 ......