基于 requests 依靠包的 Python 爬虫实战

打印 上一主题 下一主题

主题 1058|帖子 1058|积分 3174

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
一、技术栈


  • 焦点库

    • requests:用于发送 HTTP 请求,是 Python 中最常用的 HTTP 库之一,可以方便地模拟浏览器发送 GET、POST 等请求,获取网页内容。
    • BeautifulSoup(可选):用于剖析 HTML 或 XML 内容,可帮助提取所需的数据。如果须要对网页进行剖析和数据提取,BeautifulSoup 是一个强大的工具。
    • re(可选):Python 的内置模块,用于正则表达式操作,在一些情况下可以辅助数据提取,尤其是在须要精确匹配某些文本模式时。

二、对象和爬虫使用

  • 发送请求


  • 使用 requests.get() 或 requests.post() 方法发送请求。比方,要获取一个网页的内容,以领券网为例,网址http://www.i075.com/,可以使用:
  1. import requests
  2. url = "http://www.i075.com/"
  3. response = requests.get(url)
复制代码


  • response 对象将包含服务器的响应信息,如状态码、响应头、响应内容等。

  • 处置惩罚响应


  • 查抄响应状态码,确保请求成功:
  1. if response.status_code == 200:
  2.     print("请求成功")
  3. else:
  4.     print(f"请求失败,状态码:{response.status_code}")
复制代码


  • 获取网页内容:
  1. content = response.text
  2. print(content)
复制代码


  • 对于一些须要登录或携带参数的请求,可以使用以下方式:
  1. # 携带参数的 GET 请求
  2. params = {'key1': 'value1', 'key2': 'value2'}
  3. response = requests.get(url, params=params)
  4. # POST 请求
  5. data = {'username': 'user', 'password': 'pass'}
  6. response = requests.post(url, data=data)
复制代码

  • 剖析内容(如果使用 BeautifulSoup)


  • 首先须要安装 BeautifulSoup:pip install beautifulsoup4
  • 然后可以如许使用:
  1. from bs4 import BeautifulSoup
  2. soup = BeautifulSoup(content, 'html.parser')
  3. # 查找元素,例如查找所有的 <a> 标签
  4. links = soup.find_all('a')
  5. for link in links:
  6.     print(link.get('href'))
复制代码


  • 对于更复杂的元素查找和数据提取,可以使用 BeautifulSoup 的各种选择器和方法,如 find()、find_all()、select() 等。

  • 使用正则表达式提取数据(如果使用 re)


  • 比方,要从网页内容中提取全部的电子邮件地点:
  1. import re
  2. emails = re.findall(r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b', content)
  3. for email in emails:
  4.     print(email)
复制代码
三、环境依靠构建

  • 安装 Python


  • 确保你已经安装了 Python,推荐使用 Python 3.x 版本,可以从 Python 官方网站下载并安装。

  • 安装 requests 库


  • 打开命令行终端,运行以下命令:bash
  1. pip install requests
复制代码

  • 安装其他可选库(根据需求)


  • 如果你打算使用 BeautifulSoup 进行网页剖析,须要安装 beautifulsoup4:
  1. pip install beautifulsoup4
复制代码
四、爬虫示例代码
以下是一个完整的简朴爬虫示例,用于爬取一个网页并提取此中的标题:
  1. import requests
  2. from bs4 import BeautifulSoup
  3. def fetch_and_parse(url):
  4.     try:
  5.         # 发送请求
  6.         response = requests.get(url)
  7.         if response.status_code == 200:
  8.             # 解析内容
  9.             soup = BeautifulSoup(response.text, 'html.parser')
  10.             # 查找标题
  11.             title = soup.title.string
  12.             print(f"网页标题: {title}")
  13.         else:
  14.             print(f"请求失败,状态码:{response.status_code}")
  15.     except requests.RequestException as e:
  16.         print(f"请求出错: {e}")
  17. if __name__ == "__main__":
  18.     target_url = "http://www.i075.com"
  19.     fetch_and_parse(target_url)
复制代码
在这个示例中:


  • 首先使用 requests.get() 发送请求到目的 URL。
  • 查抄响应状态码是否为 200,如果成功则使用 BeautifulSoup 剖析响应内容。
  • 使用 soup.title.string 查找并提取网页的标题元素。
这个概要为你提供了一个基于 requests 包的 Python 爬虫的根本框架和思路,你可以根据本身的需求进行扩展和修改,以完成更复杂的爬虫使命,如处置惩罚多个页面、使用会话管理、处置惩罚反爬虫机制等。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

郭卫东

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表