爬虫,是学习Python的一个有用的分支,互联网时代,信息浩瀚如海,如果能够便捷的获取有用的信息,我们便有可能领先一步,而爬虫正是这样的一个工具。之前的的文章中讲到了很多有关爬虫基础知识的使用,我们已经能够使用各种库对目标网址发起请求,并获取响应信息。本期我们会介绍各网页解析库的使用,讲解如何解析响应信息,提取所需数据。
解析库就是在爬虫时自己制定一个规则,帮助我们抓取想要的内容时用的。常用的解析库有re模块的正则、beautifulsoup、pyquery等等。正则完全可以帮我们匹配到我们想要住区的内容,但正则比较麻烦,所以这里我们会用beautifulsoup。
beautifulsoup解析原理:实例化一个BeautifulSoup对象,并且将本地或者页面源码数据加载到该对象中
通过调用该对象中相关的属性或者方法进行标签定位和数据提取。
解析案例分享
Beautiful Soup 对于网络抓取很有用,因为它可以获取 URL 的内容,然后解析它以提取您需要的信息。比如我们可以使用 Beautiful Soup爬取拉勾网上的岗位,薪资分布等情况,总所周知拉勾网的反爬机制非常的严格,如果我们频繁访问会被封IP,为了应对这样的反爬机制,在爬取过程中添加了由亿牛云提供的高质量隧道爬虫代理,代码实现过程如下:
``from bs4 import BeautifulSoup
import requests
from fake_useragent import UserAgent
定义爬取的拉勾网页面的URL
url = "https://www.lagou.com/"
设置随机UA
ua = UserAgent()
headers = {'User-Agent': ua.random}
动态转发隧道代理 使用代理IP提高采集成功率
亿牛云 爬虫代理加强版 服务器和用户名、密码认证
proxy_username = '16YUN'
proxy_password = '16IP'
proxy_host = 'www.16yun.cn'
proxy_port = '31000'
构造代理IP的格式
proxies = {
'http': f'http://{proxy_username}:{proxy_password}@{proxy_host}:{proxy_port}',
'https': f'https://{proxy_username}:{proxy_password}@{proxy_host}:{proxy_port}'
}
发送请求并使用代理IP
response = requests.get(url, headers=headers, proxies=proxies)
soup = BeautifulSoup(response.content, 'html.parser')
提取产品信息
title_element = soup.find('span', id='productTitle')
priceelement = soup.find('span', class='price')
description_element = soup.find('div', id='productDescription')
title = title_element.text.strip()
price = price_element.text.strip()
description = description_element.text.strip()
打印产品信息
print("标题:", title)
print("价格:", price)
print("描述:", description)
```