python爬虫 常用套路(requests+BeautifulSoup)

一般来讲,简单的爬虫,主要是做两件事

  • 1 - 获取网页内容
  • 2 - 分析网页内容 对于python而言,常常使用requests库去做1(获取网页内容 ),
    使用BeautifulSoup库或者re库做2(分析网页内容)

一、获取网页内容 (使用requests

对于简单的网页,不需要登录的那种,获取起来很简单
代码如下

import requests

def get_url_html(url):
    r = requests.get(url)
    r.raise_for_status()
    r.encoding = r.apparent_encoding
    return r.text

二、分析网页内容 (BeautifulSoup或者re

0 - 概述

BeautifulSoupre到底哪个更好用,这要看网页的具体情况。
这里简单的说一下个人观点(不过估计新手不是很容易看懂,不懂建议直接跳过,用的多了自然就有感觉):

  • BeautifulSoup适合元素层次清晰的网页,尤其是需要获取多个层次的元素信息的时候。
  • re适合格式清晰的网页,更适合去获取同一格式的信息。

分析网页内容常常又分为两步。

  • 1 - 获取网页中自己所需要的url列表
  • 2 - 对url再次重复获取 + 分析

因为直接从网页中一次获取自己所要的最终信息这种简单情况比较少。
举两个例子:
1, 比如爬取某个博客,在主页只能先获取文章基础信息列表, 只有对这些文章的url进一步爬取才能获取具体文章信息。
2, 再比如爬取某网页图片,在主页先获取所有想要的图片的url,有了这些url还要再次用request请求获取图片内容才能进行本地保存。
所以本部分的代码套路常常如下

def parse_main_html(html):
	...
	return some_urls_of_html

def parse_sub_html_and_handle(sub_html):
	...

if __name__ == '__main__':
	url = "..."
    html = get_url_html(url)
    url_list= parse_main_html(html)
    res = []
	for sub_url in url_list:
		sub_html = get_url_html(sub_url )
		parse_sub_html(html)

2 - 使用BeautifulSoup分析网页内容

开头导入

from bs4 import BeautifulSoup

获取到html后,先使用以下语句将html解析成BeautifulSoup对象。

soup = BeautifulSoup(html, "html.parser")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值