Python网络爬虫基础1

1.基本过程

  1. 发起请求:通过HTTP库向目标站点发起请求,即发送一个Request,请求可以包含额外的headers等信息,等待服务器响应。常见的请求方法有两种,GET和POST。
  2. 获取响应内容:如果服务器能正常响应,会得到一个Response,Response的内容便是所要获取的页面内容,类型可能有HTML,Json字符串,二进制数据(如图片视频)等类型。
  3. 解析内容:得到的内容可能是HTML,可以用正则表达式、网页解析库进行解析。可能是Json,可以直接转为Json对象解析,可能是二进制数据,可以做保存或者进一步的处理。
  4. 保存数据:如果数据不多,可保存在txt 文本、csv文本或者json文本等。如果爬取的数据条数较多,可以考虑将其存储到数据库中。也可以保存为特定格式的文件。

2.Beautiful Soup

BeautifulSoup是一个可以从HTML或XML文件中提取数据的Python库,它提供了简单、Pythonic的方法来解析树形结构,并从中抓取数据。

#安装方法
pips install beautifulsoup4

#验证方法
from bs4 import BeautifulSoup

常用命令

# 解析HTML/XML:
soup = BeautifulSoup(html_doc, 'html.parser')  

# 查找标签:
# # 查找第一个<p>标签
tag = soup.find('p')  

# 使用`find_all()`查找所有匹配的标签
tags = soup.find_all('p')

# 使用`attrs`参数查找具有特定属性的标签
# # 查找id为link1的<a>标签  
tag = soup.find('a', attrs={'id': 'link1'})  

# 获取标签内容
text = tag.string  # 或 tag.get_text()  

# 获取标签属性:
# 使用`['属性名']`或`.get('属性名')`获取标签的属性值
href = tag['href']  # 或 tag.get('href')  

# 嵌套选择:
# 选择<head>标签内的<title>标签的文本内容 
title = soup.head.title.string 

# 使用CSS选择器:
# 选择class为class_name的<p>标签
tags = soup.select('p.class_name')  

BeautifulSoup库如何使用(Python爬虫)

3.实际应用

3.1 获取一个url下所有的链接

import requests
from bs4 import BeautifulSoup

def get_allurl(url):
    result_link = []

    html_content = requests.get(url).text
    soup = BeautifulSoup(html_content, "html.parser")
     
    #  找到其中的a标签,筛选出其中以.html结尾的url
    link_nodes = soup.find_all('a', href=lambda href: href and href.endswith('.html'))
    for node in link_nodes:
        tem_url=node.get("href")
        result_link.append(tem_url)
        print(tem_url)
    return result_link


if __name__=="__main__":
    url='https://consumer.panasonic.cn/product/cooking-appliances/rice-cookers/'
    # 使用函数获取选项列表
    get_allurl(url)
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值