【Python爬虫】静态页面抓取

本文介绍了如何使用Python的Requests库进行静态页面抓取,具体实践是抓取电影TOP250的数据。首先讲解了Requests库的安装,然后通过实例展示了爬虫的实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

静态页面抓取

安装Requests

#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
@File  : Static01.py
@Author: Xinzhe.Pang
@Date  : 2019/7/4 22:43
@Desc  : 
'''
import requests

# 获取响应内容
r = requests.get('http://www.santostang.com')

print("文本编码:", r.encoding)
print("响应状态码:", r.status_code)
print("字符串方式的响应体:", r.text)

# 传递URL参数
key_dict = {'key1': 'value1', 'key2': 'value2'}
r = requests.get('http://httpbin.org/get', params=key_dict)
print("URL已经正确编码:", r.url)
print("字符串方式的响应体:\n", r.text)

# 定制请求头
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36',
    'Host': 'www.santostang.com'}
r = re
### 使用Python编写爬虫抓取淘宝页面内容 要实现使用 Python 抓取淘宝页面的内容,可以通过以下方式完成: #### 工具与库的选择 为了高效地抓取网页数据,可以选择适合的工具和库。常用的工具有 `Requests` 和 `Selenium`,分别适用于静态和动态加载的数据。 - **Requests** 是用于发送 HTTP 请求的基础库,适合处理简单的 HTML 页面[^1]。 - **Selenium** 提供浏览器自动化功能,能够模拟用户操作,特别适合应对 JavaScript 动态渲染的页面[^3]。 对于淘宝这样的大型电商平台,由于其页面大多由 JavaScript 渲染而成,因此推荐优先考虑 Selenium 来捕获完整的页面内容。 --- #### URL 结构分析 在开始编码之前,需先了解目标网站(如淘宝)的商品列表页 URL 的构成规律。例如,当搜索某个关键词时,URL 可能形似如下: ``` https://s.taobao.com/search?q=关键词&imgfile=&commend=all&ssid=s5-e&search_type=item&source=comb... ``` 其中的关键部分是 `q=关键词` 参数,它决定了返回的结果集范围[^2]。通过修改此参数即可切换不同的商品类别或关键字。 --- #### 爬虫代码示例 以下是基于 Selenium 实现的一个简单例子,展示如何根据指定关键词检索并提取淘宝上的商品信息。 ```python from selenium import webdriver import time def init_driver(): options = webdriver.ChromeOptions() options.add_argument('--headless') # 设置无头模式运行 driver = webdriver.Chrome(options=options) return driver def search_taobao(keyword, num_pages=1): results = [] url_template = "https://s.taobao.com/search?q={}&imgfile=&js=1&stats_click=search_radio_all%3A1&initiative_id=staobaoz_20230914" formatted_url = url_template.format(keyword) driver = init_driver() try: for page in range(1, num_pages + 1): current_url = f"{formatted_url}&bcoffset=4&p4ppushleft=%2C48&s={(page - 1) * 44}" driver.get(current_url) time.sleep(3) # 延迟等待页面完全加载 items = driver.find_elements_by_css_selector(".m-itemlist .items .item")[:44] for item in items: title_element = item.find_element_by_css_selector(".title") price_element = item.find_element_by_css_selector(".price") result = { 'title': title_element.text.strip(), 'price': price_element.text.strip() } results.append(result) finally: driver.quit() # 关闭驱动程序 return results if __name__ == "__main__": keyword = input("请输入您想查找的商品名称:").strip() data = search_taobao(keyword, num_pages=2) print(data) ``` 注意,在实际部署过程中可能还需要额外配置代理 IP 或者解决反爬机制等问题[^3]。 --- #### 数据存储与后续处理 收集到的数据可以根据需求保存至文件或者数据库中以便进一步分析。比如可以将 JSON 格式的字典对象序列化成字符串形式存入 MongoDB 集合里;也可以直接导出 CSV 文件方便导入 Excel 表格软件查看编辑。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

镰刀韭菜

看在我不断努力的份上,支持我吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值