本文主要是介绍热销商品-爬虫销量信息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
技术部分详解
1、发送GET请求:使用requests库的get()方法发送GET请求来获取指定网页的内容。在这个例子中,使用了一个自定义的User-Agent,以模拟一个浏览器发送请求。
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
Mozilla/5.0:通用格式标识,表示这是一个Mozilla浏览器的用户代理。
(Windows NT 10.0; Win64; x64):操作系统和系统架构的说明,表示这是Windows NT 10.0操作系统的64位版本。
AppleWebKit/537.36 (KHTML, like Gecko):WebKit引擎的版本信息,类似于Chrome浏览器的引擎。
Chrome/58.0.3029.110 Safari/537.3:浏览器的版本信息,这里表示Chrome浏览器的58.0.3029.110版本和Safari浏览器的537.3版本。
# 发送GET请求获取页面内容response = requests.get(url, headers=headers)
2、解析页面内容:使用BeautifulSoup库的BeautifulSoup()方法来解析页面的HTML内容。在这个例子中,使用了’html.parser’作为解析器来解析网页。
# 使用BeautifulSoup解析页面内容soup = BeautifulSoup(response.content, 'html.parser')
3、查找元素:通过调用BeautifulSoup对象的find_all()方法来查找所有符合指定条件的元素。在这个例子中,使用了class属性为’tt’的div元素。
# 查找所有<div class="tt">元素items = soup.find_all('div', class_='tt')
4、收集数据:通过循环迭代每个找到的元素并提取所需的信息来收集数据。在这个例子中,利用get_text()方法获取元素的文本内容,并使用正则表达式对文本进行处理和分割,以得到产品名称和销量数据。
完整代码如下:
import requests
from bs4 import BeautifulSoup
import redef scrape_and_collect_data(url, num_items):headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}# 发送GET请求获取页面内容response = requests.get(url, headers=headers)# 使用BeautifulSoup解析页面内容soup = BeautifulSoup(response.content, 'html.parser')# 查找所有<div class="tt">元素items = soup.find_all('div', class_='tt')product_names = []sales_data = []# 收集数据for index, item in enumerate(items):if index >= num_items:breakitem_text = item.get_text(strip=True)item_text_without_original_price = re.sub(r'原价.*', '', item_text) # 删除包括“原价”后的文本sales_div = item.find_next('div', class_='ss')if sales_div:# 提取销量信息并去除括号及其内部内容sales_info = re.sub(r'\([^()]*\)', '', sales_div.get_text(strip=True))sales_info_cut = sales_info.split('热销')[-1].split('件')[0].strip() # 切片操作提取券后之后到'-'之前的内容product_names.append(item_text_without_original_price)sales_data.append(int(sales_info_cut))print(item_text_without_original_price)print(sales_info_cut)return product_names, sales_data# 要爬取的网页链接和指定爬取的条数
url = 'https://tophub.today/c/shopping'
num_items = 10 # 指定爬取前10条数据# 调用函数执行爬取并收集数据
product_names, sales_data = scrape_and_collect_data(url, num_items)
这篇关于热销商品-爬虫销量信息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!