urllib和requests,python网络编程都有什么?

2023-12-05 17:11:05 22阅读

urllib和requests,python网络编程都有什么?

Python 网络编程

Python 提供了两个级别访问的网络服务:

urllib和requests,python网络编程都有什么?

1、低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统 Socket 接口的全部方法。

2、高级别的网络服务模块 SocketServer, 它提供了服务器中心类,可以简化网络服务器的开发。

什么是 Socket?

Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。

socket()函数

Python 中,我们用 socket()函数来创建套接字

菜单怎样生成链接?

菜单生成链接的方法取决于您使用的编程语言和框架。以下是一些常见编程语言和框架的菜单链接生成方法:

1. HTML:在 HTML 中,您可以使用<a>标签来创建链接。例如,如果您有一个菜单项名为“菜单链接”,您可以使用以下 HTML 代码将其链接到另一个页面:

```

<a href="https://www.example.com/link-to-another-page">菜单链接</a>

```

2. PHP:在 PHP 中,您可以使用 echo 语句来创建链接。例如,如果您有一个菜单项名为“菜单链接”,您可以使用以下 PHP 代码将其链接到另一个页面:

```

echo "<a href='https://www.example.com/link-to-another-page'>菜单链接</a>";

```

3. Python:在 Python 中,您可以使用 urllib 库或 requests 库来创建链接。例如,如果您有一个菜单项名为“菜单链接”,您可以使用以下 Python 代码将其链接到另一个页面:

```

import urllib.request

url = "https://www.example.com/link-to-another-page"

response = urllib.request.urlopen(url)

html = response.read().decode("utf-8")

print(html)

```

4. JavaScript:在 JavaScript 中,您可以使用 document.createElement() 方法创建链接。例如,如果您有一个菜单项名为“菜单链接”,您可以使用以下 JavaScript 代码将其链接到另一个页面:

```

var link = document.createElement("a");

link.href = "https://www.example.com/link-to-another-page";

link.innerHTML = "菜单链接";

document.body.appendChild(link);

```

这些只是一些常见的方法,具体的方法取决于您使用的编程语言和框架。

用什么样的爬虫工具可以抓取工厂电话?

人生苦短,我用Python!

论简便、易用性,个人强烈建议使用Python,其丰富强大的网络工具库、网页解析库,再加上Python简洁利落的语言特性,使得爬虫真的可以轻松无痛~

一、网络请求:获取网页内容

1、urllib3:爬虫的起点

urllib3是用于Python的一个功能强大、健全友好的HTTP客户端。大部分Python生态系统已经使用urllib3,urllib3带来了许多Python标准库中缺少的关键特性:

线程安全连接池客户端SSL/TLS验证使用多种编码上载文件用于重试请求和处理HTTP重定向的帮助程序支持gzip和deflate编码对HTTP和SOCKS的代理支持

urllib3是最基本的库,可以定制用户需要的一切网络需求,满足不同环境下的爬虫需求。

2、requests库

requests继承了urllib的所有特性,requests支持HTTP连接保持和连接池,支持使用cookie保持会话,支持文件上传,支持自动确定响应内容的编码,支持国际化的 URL 和 POST 数据自动编码,而其底层实现其实就是 urllib。

Requests is an elegant and simple HTTP library for Python, built for human beings.

3、Scrapy

Scrapy是一个快速的高级web抓取和web抓取框架,用于抓取网站和从网页中提取结构化数据。它可以用于广泛的用途,从数据挖掘到监控和自动化测试。

二、内容获取:网页解析

1、BeautifulSoup

Beautiful Soup是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖析树(parse tree)。它提供简单又常用的导航,搜索以及修改剖析树的操作,它可以大大节省你的编程时间。

2、XPath

XPath即为XML路径语言,它是一种用来确定XML文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。起初XPath的提出的初衷是将其作为一个通用的、介于XPointer与XSL间的语法模型。但是XPath很快的被开发者采用来当作小型查询语言。

三、爬虫工具抓取工厂电话

首先确定需要爬取的网站;其次需要选择一个合适的HTTP请求库(但不限于第一部分中提到的三种库)向目标网站发起请求获取网页;最后当获取网页内容后,选择第二部分中提到的解析技术提取文档中的需要的号码。但是,爬虫最难的部分在于网站的各种反爬机制,这个需要额外的寻求解决办法~祝好!

没有requests模块怎么解决?

没有requests模块可以尝试使用Python内置的urllib库来发送HTTP请求。urllib库也可以用来发送HTTP请求并获取响应结果,尽管相对于requests模块来说可能有些复杂和繁琐,但是依然是一个可行的解决方案。

以下是使用urllib发送GET请求的示例代码:

Copy Code

import urllib.request

url = 'http://www.example.com/'

response = urllib.request.urlopen(url)

html = response.read().decode('utf-8')

print(html)

如果需要发送POST请求,可以使用urllib.parse模块构造请求参数,并将请求参数以bytes的形式传递给urllib.request.urlopen()方法,示例代码如下:

Copy Code

import urllib.parse

import urllib.request

url = 'http://www.example.com/login'

data = {'username': 'your_username', 'password': 'your_password'}

data = urllib.parse.urlencode(data).encode('utf-8')

response = urllib.request.urlopen(url, data)

html = response.read().decode('utf-8')

print(html)

需要注意的是,由于urllib库比requests库更加底层,所以在使用时需要自己处理一些细节问题,例如编码方式、请求头等。

具体要用到什么软件?

这里有2种方法,一个是利用现有的爬虫软件,一个是利用编程语言,下面我简单介绍一下,主要内容如下:

爬虫软件

这个就很多了,对于稍微简单的一些规整静态网页来说,使用Excel就可以进行爬取,相对复杂的一些网页,可以使用八爪鱼、火车头等专业爬虫软件来爬取,下面我以八爪鱼为例,简单介绍一下爬取网页过程,很简单:

1.首先,下载八爪鱼软件,这个直接到官网上下载就行,如下,直接点击下载:

2.下载完成后,打开软件,进入任务主页,这里选择“自定义采集”,点击“立即使用”,如下:

3.进入新建任务页面,然后输入需要爬取的网页地址,点击保存,如下,这里以大众点评上的评论数据为例:

4.点击“保存网址”后,就会自动打开页面,如下,这时你就可以根据自己需求直接选择需要爬取的网页内容,然后按照提示一步一步往下走就行:

5.最后启动本地采集,就会自动爬取刚才你选中的数据,如下,很快也很简单:

这里你可以导出为Excel文件,也可以导出到数据库中都行,如下:

编程语言

这个也很多,大部分编程语言都可以,像Java,Python等都可以实现网页数据的爬取,如果你没有任何编程基础的话,可以学习一下Python,面向大众,简单易懂,至于爬虫库的话,也很多,像lxml,urllib,requests,bs4等,入门都很简单,这里以糗事百科的数据为例,结合Python爬虫实现一下:

1.首先,打开任意一个页面,爬取的网页数据如下,主要包括昵称、内容、好笑数和评论数4个字段:

2.接着打开网页源码,可以看到,爬取的内容都在网页源码中,数据不是动态加载的,相对爬取起来就容易很多,如下:

3.最后就是根据网页结构,编写相关代码了,这里主要使用的是requests+BeautifulSoup组合,比较简单,其中requests用于请求页面,BeautifulSoup用于解析页面,主要代码如下:

点击运行程序,就会爬取到刚才的网页数据,如下:

4.这里熟悉后,为了提高开发的效率,避免重复造轮子,可以学习一下相关爬虫框架,如Python的Scrapy等,很不错,也比较受欢迎:

至此,我们就完成了网页数据的爬取。总的来说,两种方法都可以,如果你不想编程,或者没有任何的编程基础,可以考虑使用八爪鱼等专业爬虫软件,如果你有一定的编程基础,想挑战一下自己,可以使用相关编程语言来实现网页数据的爬取,网上也有相关教程和资料,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言。

由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,我们会做删除处理。