首页 > 编程语言 >无涯教程-Python爬虫 - 模块安装

无涯教程-Python爬虫 - 模块安装

时间:2023-11-29 21:32:23浏览次数:48  
标签:Python urllib3 无涯 爬虫 base https requests packages

在本章中,让无涯教程学习可用于Web抓取的各种Python模块。

虚拟环境

Virtualenv是用于创建隔离的Python环境的工具。借助virtualenv,可以创建一个文件夹,其中包含使用Python项目所需的软件包所需的所有可执行文件。它还允许添加和修改Python模块,而无需访问全局安装。

您可以使用以下命令安装 virtualenv -

(base) D:\ProgramData>pip install virtualenv
Collecting virtualenv
   Downloading
https://files.pythonhosted.org/packages/b6/30/96a02b2287098b23b875bc8c2f58071c3
5d2efe84f747b64d523721dc2b5/virtualenv-16.0.0-py2.py3-none-any.whl
(1.9MB)
   100% |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 1.9MB 86kB/s
Installing collected packages: virtualenv
Successfully installed virtualenv-16.0.0

现在,需要创建一个目录,该目录将在以下命令的帮助下代表项目:

(base) D:\ProgramData>mkdir webscrap

现在,在以下命令的帮助下进入该目录-

(base) D:\ProgramData>cd webscrap

现在,无涯教程需要初始化选择的虚拟环境文件夹,如下所示:

(base) D:\ProgramData\webscrap>virtualenv websc
Using base prefix 'd:\\programdata'
New python executable in D:\ProgramData\webscrap\websc\Scripts\python.exe
Installing setuptools, pip, wheel...done.

现在,使用下面给出的命令激活虚拟环境。成功激活后,您将在括号的左侧看到其名称。

(base) D:\ProgramData\webscrap>websc\scripts\activate

可以在此环境中安装任何模块,如下所示:

(websc) (base) D:\ProgramData\webscrap>pip install requests
Collecting requests
   Downloading
https://files.pythonhosted.org/packages/65/47/7e02164a2a3db50ed6d8a6ab1d6d60b69
c4c3fdf57a284257925dfc12bda/requests-2.19.1-py2.py3-none-any.whl (9
1kB)
   100% |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 92kB 148kB/s
Collecting chardet<3.1.0,>=3.0.2 (from requests)
   Downloading
https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca
55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133
kB)
   100% |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 143kB 369kB/s
Collecting certifi>=2017.4.17 (from requests)
   Downloading
https://files.pythonhosted.org/packages/df/f7/04fee6ac349e915b82171f8e23cee6364
4d83663b34c539f7a09aed18f9e/certifi-2018.8.24-py2.py3-none-any.whl
(147kB)
   100% |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 153kB 527kB/s
Collecting urllib3<1.24,>=1.21.1 (from requests)
   Downloading
https://files.pythonhosted.org/packages/bd/c9/6fdd990019071a4a32a5e7cb78a1d92c5
3851ef4f56f62a3486e6a7d8ffb/urllib3-1.23-py2.py3-none-any.whl (133k
B)
   100% |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 143kB 517kB/s
Collecting idna<2.8,>=2.5 (from requests)
   Downloading
https://files.pythonhosted.org/packages/4b/2a/0276479a4b3caeb8a8c1af2f8e4355746
a97fab05a372e4a2c6a6b876165/idna-2.7-py2.py3-none-any.whl (58kB)
   100% |¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦| 61kB 339kB/s
Installing collected packages: chardet, certifi, urllib3, idna, requests
Successfully installed certifi-2018.8.24 chardet-3.0.4 idna-2.7 requests-2.19.1
urllib3-1.23

为了停用虚拟环境,可以使用以下命令-

(websc) (base) D:\ProgramData\webscrap>deactivate
(base) D:\ProgramData\webscrap>

您可以看到(websc)已被停用。

爬虫模块

Web抓取是构建可自动从Web提取,解析,下载和组织有用信息的过程m换句话说,Web抓取软件将代替自动从网站上保存数据,而是根据无涯教程的要求自动从多个网站上加载和提取数据。

这是一个简单的python网络抓取库,它是用于访问网页的高效HTTP库,借助Requests,可以获取网页的原始HTML,然后可以对其进行解析以获取数据。可以在虚拟环境或全局安装中安装它。借助 pip 命令,无涯教程可以轻松地按如下方式安装它-

(base) D:\ProgramData> pip install requests
Collecting requests
Using cached
https://files.pythonhosted.org/packages/65/47/7e02164a2a3db50ed6d8a6ab1d6d60b69
c4c3fdf57a284257925dfc12bda/requests-2.19.1-py2.py3-none-any.whl
Requirement already satisfied: idna<2.8,>=2.5 in d:\programdata\lib\sitepackages
(from requests) (2.6)
Requirement already satisfied: urllib3<1.24,>=1.21.1 in
d:\programdata\lib\site-packages (from requests) (1.22)
Requirement already satisfied: certifi>=2017.4.17 in d:\programdata\lib\sitepackages
(from requests) (2018.1.18)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in
d:\programdata\lib\site-packages (from requests) (3.0.4)
Installing collected packages: requests
Successfully installed requests-2.19.1

在此示例中,无涯教程正在对网页进行GET HTTP请求。为此,需要首先导入requests请求库,如下所示:

In [1]: import requests

在下面的代码行中,使用请求对URL进行GET HTTP请求:https://authoraditiagarwal .com/发出GET请求。

In [2]: r=requests.get('https://authoraditiagarwal.com/')

现在,可以使用 .text 属性检索内容,如下所示:

In [5]: r.text[:200]

在下面的输出中观察到,得到了前200个字符。

Out[5]: '<!DOCTYPE html>\n<html lang="en-US"\n\titemscope
\n\titemtype="http://schema.org/WebSite"\n\tprefix="og: http://ogp.me/ns#"
>\n<head>\n\t<meta charset
="UTF-8" />\n\t<meta http-equiv="X-UA-Compatible" content="IE'

urllib3 模块

这是另一个Python库,可用于从与 requests 库类似的URL检索数据,您可以在以下网站的技术文档中阅读更多内容: https://urllib3.readthedocs.io/en/latest/

安装urllib3    -  使用 pip 命令,可以在虚拟环境或全局安装中安装 urllib3 。

(base) D:\ProgramData>pip install urllib3
Collecting urllib3
Using cached
https://files.pythonhosted.org/packages/bd/c9/6fdd990019071a4a32a5e7cb78a1d92c5
3851ef4f56f62a3486e6a7d8ffb/urllib3-1.23-py2.py3-none-any.whl
Installing collected packages: urllib3
Successfully installed urllib3-1.23

开始爬取数据

在以下示例中,无涯教程将使用urllib3和BeautifulSoup抓取网页,在请求库的位置使用urllib3来从网页获取原始数据(HTML),然后使用BeautifulSoup解析该HTML数据。

import urllib3
from bs4 import BeautifulSoup
http=urllib3.PoolManager()
r=http.request('GET', 'https://authoraditiagarwal.com')
soup=BeautifulSoup(r.data, 'lxml')
print (soup.title)
print (soup.title.text)

这是运行此代码时将观察到的输出-

<title>Learn and Grow with Aditi Agarwal</title>
Learn and Grow with Aditi Agarwal

Selenium 模块

它是跨不同浏览器和平台的Web应用程序的开源自动化测试套件。它不是单个工具,而是一套软件。无涯教程具有用于Python,Java,C#,Ruby和JavaScript的Selenium绑定,在这里,无涯教程将通过使用Selenium及其Python绑定来执行Web抓取,Selenium Python绑定为访问Selenium WebDriver(如Firefox,IE,Chrome,Remote等)提供了便捷的API。当前支持的Python版本为2.7、3.5及更高版本。

使用 pip 命令,可以在虚拟环境或全局安装中安装 urllib3 。

pip install selenium

由于硒需要驱动程序才能与所选浏览器交互,因此需要下载它。下表显示了不同的浏览器及其下载链接。

Chrome

https://sites.google.com/a/chromium.org/

Edge

https://developer.microsoft.com/

Firefox

https://github.com/

Safari

https://webkit .org/

为指定版本的浏览器下载特定的驱动程序后,需要使用Python进行编程。

首先,需要从Selenium中导入 webdriver ,如下所示:

from selenium import webdriver

现在,提供根据要求下载的Web驱动程序的路径-

path=r'C:\\Users\\gaurav\\Desktop\\Chromedriver'
browser=webdriver.Chrome(executable_path=path)

现在,提供要在该Web浏览器中打开的URL,该URL现在由Python脚本控制。

browser.get('https://authoraditiagarwal.com/leadershipmanagement')

无涯教程还可以通过提供lxml中提供的xpath来抓取特定元素。

browser.find_element_by_xpath('/html/body').click()

您可以检查受Python脚本控制的浏览器的输出。

Scrapy 模块

Scrapy是使用Python编写的快速,开放源代码的Web爬网框架,用于在基于XPath的选择器的帮助下从网页中提取数据,Scrapy于2008年6月26日首次发布,获得了BSD的许可,并在2015年6月发布了里程碑1.0,提供了从网站提取,处理和构建数据所需的所有工具。

使用 pip 命令,无涯教程可以在虚拟环境或全局安装中安装 urllib3 。

pip install scrapy

参考链接

https://www.learnfk.com/python-web-scraping/python-modules-for-web-scraping.html

标签:Python,urllib3,无涯,爬虫,base,https,requests,packages
From: https://blog.51cto.com/u_14033984/8620487

相关文章

  • Python中代码异常处理
        ......
  • python part4
    Pythonpart4条件if语句abs()布尔表达式嵌套if-elif-else推导式本质是python的语法糖match-case语句case后的内容可以用|隔开清晰的代码风格让if后的条件为真if下的内容不要空白,不够清晰明了用if-if会导致bug多用elifif套if比较混乱,用and较为清晰......
  • 无涯教程-Python爬虫 - 简介
    Web抓取是从Web提取信息的自动过程,本章将为您提供有关Web抓取的深入概念,它与Web抓取的比较以及为什么要选择Web抓取。网页抓取字典中"Scrapping"一词的含义表示可以从网络中获取某些东西,这里出现两个问题:无涯教程可以从网上获得什么以及如何获得它。第一个问题的答案是"数据......
  • 无涯教程-F# - 事件类型
    事件允许类之间相互发送和接收消息,对象通过同步消息传递相互通信。事件类和事件模块Control.Event<'T>类有助于创建可观察的对象或事件。Member说明Publish将观察输出作为一等值发布。Trigger使用给定的参数触发观察。Control.Event模块提供用于管理事件流的功能-Valu......
  • Python 中的单下划线和双下划线
    哈喽大家好,我是咸鱼当我们在学习Python的时候,可能会经常遇到单下划线_和双下划线__这两种命名方式单下划线_和双下划线__不仅仅是只是一种简单的命名习惯,它们在Python中有着特殊的含义,对于代码的可读性和功能实现有着关键的作用。那么今天我们来看一看在Python......
  • 无涯教程-F# - 模块声明
    F#模块是F#代码构造的组合,如类型,值,函数值和do绑定中的代码,它被实现为仅具有静态成员的公共语言运行时(CLR)类。根据情况,整个文件是否包含在模块中,有两种类型的模块声明-顶级模块声明本地模块声明在顶层模块声明中,整个文件都包含在模块中,在这种情况下,文件中的第一个声明是模块......
  • Python——第四章:推导式
    推导式:推导式是为了简化代码.语法:列表推导式:[数据for循环if判断]集合推导式:{数据for循环if判断}字典推导式:{k:vfor循环if判断}元组推导式:不存在(因为元组不可以增、删、改)生成器表达式:(数据for循环if判断) ->不是元组推导式不要把推导式妖魔化不要刻意去用推......
  • 鲸科达:Python 面向对象
    2023/11/2918:30:17 面向对象编程(Object-OrientedProgramming,OOP)是一种编程范式,它使用“对象”来设计软件。在Python中,面向对象编程是一种主要的编程方法之一。以下是面向对象编程的一些基本概念,以及如何在Python中实现它们。类和对象在面向对象编程中,“类”是......
  • Python——第四章:生成器(generator)
    生成器(generator):  生成器的本质就是迭代器  创建生成器的两种方案:    1.生成器函数    2.生成器表达式  生成器函数    生成器函数中有一个关键字yield    生成器函数执行的时候,并不会执行函数,得到的是生成器.   ......
  • 聪明办法学python chap4:条件
    聪明办法学pythonchap4:条件if语句:通过缩进判断是不是在if里面ifelse:if成立else就不管了if不成立执行elsex=int(input())ifelifelse:平行依次判断:if():elif():elif():else:语法糖:(推导式)def(n):returnnif(n>=0)else-n等价于:def(n):​ ifn>=0:......