Rumah pembangunan bahagian belakang Tutorial Python python3如何利用requests模块实现爬取页面内容的实例详解

python3如何利用requests模块实现爬取页面内容的实例详解

Sep 25, 2017 am 11:23 AM
python3 requests modul

本篇文章主要介绍了python3使用requests模块爬取页面内容的实战演练,具有一定的参考价值,有兴趣的可以了解一下

1.安装pip

我的个人桌面系统用的linuxmint,系统默认没有安装pip,考虑到后面安装requests模块使用pip,所以我这里第一步先安装pip。


$ sudo apt install python-pip
Salin selepas log masuk

安装成功,查看PIP版本:


$ pip -V
Salin selepas log masuk

2.安装requests模块

这里我是通过pip方式进行安装:


$ pip install requests
Salin selepas log masuk

运行import requests,如果没提示错误,那说明已经安装成功了!

检验是否安装成功

3.安装beautifulsoup4

Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库。它能够通过你喜欢的转换器实现惯用的文档导航,查找、修改文档的方式。Beautiful Soup会帮你节省数小时甚至数天的工作时间。


$ sudo apt-get install python3-bs4
Salin selepas log masuk

注:这里我使用的是python3的安装方式,如果你用的是python2,可以使用下面命令安装。


$ sudo pip install beautifulsoup4
Salin selepas log masuk

4.requests模块浅析

1)发送请求

首先当然是要导入 Requests 模块:


>>> import requests
Salin selepas log masuk

然后,获取目标抓取网页。这里我以下为例:


>>> r = requests.get('http://www.jb51.net/article/124421.htm')
Salin selepas log masuk

这里返回一个名为 r 的响应对象。我们可以从这个对象中获取所有我们想要的信息。这里的get是http的响应方法,所以举一反三你也可以将其替换为put、delete、post、head。

2)传递URL参数

有时我们想为 URL 的查询字符串传递某种数据。如果你是手工构建 URL,那么数据会以键/值对的形式置于 URL 中,跟在一个问号的后面。例如, cnblogs.com/get?key=val。 Requests 允许你使用 params 关键字参数,以一个字符串字典来提供这些参数。

举例来说,当我们google搜索“python爬虫”关键词时,newwindow(新窗口打开)、q及oq(搜索关键词)等参数可以手工组成URL ,那么你可以使用如下代码:


>>> payload = {'newwindow': '1', 'q': 'python爬虫', 'oq': 'python爬虫'}

>>> r = requests.get("https://www.google.com/search", params=payload)
Salin selepas log masuk

3)响应内容

通过r.text或r.content来获取页面响应内容。


>>> import requests

>>> r = requests.get('https://github.com/timeline.json')

>>> r.text
Salin selepas log masuk

Requests 会自动解码来自服务器的内容。大多数 unicode 字符集都能被无缝地解码。这里补充一点r.text和r.content二者的区别,简单说:

resp.text返回的是Unicode型的数据;

resp.content返回的是bytes型也就是二进制的数据;

所以如果你想取文本,可以通过r.text,如果想取图片,文件,则可以通过r.content。

4)获取网页编码


>>> r = requests.get('http://www.cnblogs.com/')

>>> r.encoding

'utf-8'
Salin selepas log masuk

5)获取响应状态码

我们可以检测响应状态码:


>>> r = requests.get('http://www.cnblogs.com/')

>>> r.status_code

200
Salin selepas log masuk

5.案例演示

最近公司刚引入了一款OA系统,这里我以其官方说明文档页面为例,并且只抓取页面中文章标题和内容等有用信息。

演示环境

操作系统:linuxmint

python版本:python 3.5.2

使用模块:requests、beautifulsoup4

代码如下:


#!/usr/bin/env python
# -*- coding: utf-8 -*-
_author_ = 'GavinHsueh'

import requests
import bs4

#要抓取的目标页码地址
url = 'http://www.ranzhi.org/book/ranzhi/about-ranzhi-4.html'

#抓取页码内容,返回响应对象
response = requests.get(url)

#查看响应状态码
status_code = response.status_code

#使用BeautifulSoup解析代码,并锁定页码指定标签内容
content = bs4.BeautifulSoup(response.content.decode("utf-8"), "lxml")
element = content.find_all(id='book')

print(status_code)
print(element)
Salin selepas log masuk

程序运行返回爬去结果:

抓取成功

关于爬去结果乱码问题

其实起初我是直接用的系统默认自带的python2操作的,但在抓取返回内容的编码乱码问题上折腾了老半天,google了多种解决方案都无效。在被python2“整疯“之后,只好老老实实用python3了。对于python2的爬取页面内容乱码问题,欢迎各位前辈们分享经验,以帮助我等后生少走弯路。

Atas ialah kandungan terperinci python3如何利用requests模块实现爬取页面内容的实例详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Modul pengembangan WLAN telah berhenti [fix] Modul pengembangan WLAN telah berhenti [fix] Feb 19, 2024 pm 02:18 PM

Jika terdapat masalah dengan modul pengembangan WLAN pada komputer Windows anda, ia mungkin menyebabkan anda terputus sambungan daripada Internet. Keadaan ini sering mengecewakan, tetapi mujurlah, artikel ini menyediakan beberapa cadangan mudah yang boleh membantu anda menyelesaikan masalah ini dan membolehkan sambungan wayarles anda berfungsi dengan baik semula. Betulkan Modul Kebolehlanjutan WLAN Telah Berhenti Jika Modul Kebolehlanjutan WLAN telah berhenti berfungsi pada komputer Windows anda, ikuti cadangan ini untuk membetulkannya: Jalankan Penyelesai Masalah Rangkaian dan Internet untuk melumpuhkan dan mendayakan semula sambungan rangkaian wayarles Mulakan semula Perkhidmatan Konfigurasi Auto WLAN Ubah Suai Pilihan Kuasa Ubah suai Tetapan Kuasa Lanjutan Pasang Semula Pemacu Penyesuai Rangkaian Jalankan Beberapa Perintah Rangkaian Sekarang, mari kita lihat secara terperinci

Modul kebolehlanjutan WLAN tidak boleh dimulakan Modul kebolehlanjutan WLAN tidak boleh dimulakan Feb 19, 2024 pm 05:09 PM

Artikel ini memperincikan kaedah untuk menyelesaikan ID10000 peristiwa, yang menunjukkan bahawa modul pengembangan LAN Wayarles tidak boleh dimulakan. Ralat ini mungkin muncul dalam log peristiwa Windows 11/10 PC. Modul kebolehlanjutan WLAN ialah komponen Windows yang membenarkan vendor perkakasan bebas (IHV) dan vendor perisian bebas (ISV) untuk menyediakan pengguna dengan ciri dan fungsi rangkaian wayarles tersuai. Ia memanjangkan keupayaan komponen rangkaian Windows asli dengan menambahkan fungsi lalai Windows. Modul kebolehlanjutan WLAN dimulakan sebagai sebahagian daripada permulaan apabila sistem pengendalian memuatkan komponen rangkaian. Jika Modul Pengembangan LAN Wayarles menghadapi masalah dan tidak boleh dimulakan, anda mungkin melihat mesej ralat dalam log dalam Pemapar Acara.

Bagaimana untuk merealisasikan penukaran bersama antara permintaan CURL dan python dalam python Bagaimana untuk merealisasikan penukaran bersama antara permintaan CURL dan python dalam python May 03, 2023 pm 12:49 PM

Kedua-dua curl dan Pythonrequests adalah alat yang berkuasa untuk menghantar permintaan HTTP. Walaupun curl ialah alat baris arahan yang membolehkan anda menghantar permintaan terus dari terminal, perpustakaan permintaan Python menyediakan cara yang lebih terprogram untuk menghantar permintaan daripada kod Python. Sintaks asas untuk menukar perintah curl kepada Pythonrequestscurl adalah seperti berikut: curl[OPTIONS]URL Apabila menukar arahan curl kepada permintaan Python, kita perlu menukar pilihan dan URL kepada kod Python. Berikut ialah contoh perintah curlPOST: curl-XPOST https://example.com/api

Cara menggunakan perpustakaan Permintaan perangkak Python Cara menggunakan perpustakaan Permintaan perangkak Python May 16, 2023 am 11:46 AM

1. Pasang perpustakaan permintaan. Oleh kerana proses pembelajaran menggunakan bahasa Python, Python perlu dipasang terlebih dahulu. Anda boleh menyemak versi Python yang telah anda pasang dengan menjalankan perintah python --version untuk memasang Python 3.X atau lebih tinggi. Selepas memasang Python, anda boleh terus memasang perpustakaan permintaan melalui arahan berikut. pipinstallrequestsPs: Anda boleh bertukar kepada sumber pip domestik, seperti Alibaba dan Douban, yang pantas Untuk menunjukkan fungsi, saya menggunakan nginx untuk mensimulasikan laman web yang mudah. Selepas memuat turun, jalankan sahaja program nginx.exe dalam direktori akar.

Python biasa menggunakan perpustakaan standard dan modul 2-sys perpustakaan pihak ketiga Python biasa menggunakan perpustakaan standard dan modul 2-sys perpustakaan pihak ketiga Apr 10, 2023 pm 02:56 PM

1. Pengenalan kepada modul sys Modul os yang diperkenalkan sebelum ini adalah terutamanya untuk sistem pengendalian, manakala modul sys dalam artikel ini adalah terutamanya untuk penterjemah Python. Modul sys ialah modul yang disertakan dengan Python Ia adalah antara muka untuk berinteraksi dengan penterjemah Python. Modul sys menyediakan banyak fungsi dan pembolehubah untuk menangani bahagian yang berlainan dalam persekitaran masa jalan Python. 2. Kaedah modul sys yang biasa digunakan Anda boleh menyemak kaedah yang disertakan dalam modul sys melalui kaedah dir(): import sys print(dir(sys))1.sys.argv-dapatkan parameter baris arahan sys. argv digunakan untuk melaksanakan arahan dari luar atur cara Aturcara lulus parameter dan ia dapat memperoleh lajur parameter baris arahan

Cara Python menggunakan Permintaan untuk meminta halaman web Cara Python menggunakan Permintaan untuk meminta halaman web Apr 25, 2023 am 09:29 AM

Permintaan mewarisi semua ciri urllib2. Permintaan menyokong kegigihan sambungan HTTP dan pengumpulan sambungan, menyokong penggunaan kuki untuk mengekalkan sesi, menyokong muat naik fail, menyokong penentuan pengekodan kandungan respons secara automatik dan menyokong URL antarabangsa dan pengekodan automatik data POST. Kaedah pemasangan menggunakan pip untuk memasang $pipinstallrequestsGET meminta permintaan GET asas (parameter pengepala dan parameter parmas) 1. Permintaan GET paling asas boleh terus menggunakan kaedah get 'response=requests.get("http://www.baidu.com/ &quot

Pengaturcaraan Python: Penjelasan terperinci tentang perkara utama menggunakan tupel bernama Pengaturcaraan Python: Penjelasan terperinci tentang perkara utama menggunakan tupel bernama Apr 11, 2023 pm 09:22 PM

Prakata Artikel ini terus memperkenalkan modul koleksi Python Kali ini terutamanya memperkenalkan tupel yang dinamakan di dalamnya, iaitu penggunaan namedtuple. Tanpa berlengah lagi, mari kita mulakan – ingat untuk suka, ikut dan ke hadapan~ ^_^Mencipta tupel bernama Kelas tuple bernamaTuples dalam koleksi Python memberi makna kepada setiap kedudukan dalam tupel dan meningkatkan kebolehbacaan kod Seksual dan deskriptif. Ia boleh digunakan di mana-mana tupel biasa digunakan, dan menambah keupayaan untuk mengakses medan mengikut nama dan bukannya indeks kedudukan. Ia datang daripada koleksi modul terbina dalam Python. Sintaks umum yang digunakan ialah: import koleksi XxNamedT

Cara menggunakan pos permintaan python Cara menggunakan pos permintaan python Apr 29, 2023 pm 04:52 PM

Python mensimulasikan penyemak imbas menghantar permintaan kiriman importrequests format request.postrequest.post(url,data,json,kwargs)#post request format request.get(url,params,kwargs)#Berbanding dengan permintaan get, menghantar parameter permintaan pos dibahagikan kepada parameter data forms ( x-www-form-urlencoded) json (application/json) menyokong format kamus dan format rentetan Format kamus menggunakan kaedah json.dumps() untuk menukar data kepada rentetan format json yang sah

See all articles