python爬虫抓取京东手机网页数据并保存到csv中
时间: 2024-09-19 15:04:48 浏览: 46
在Python中,抓取京东手机网页数据并保存到CSV文件通常涉及以下几个步骤:
1. **安装库**:
首先需要安装 `requests` 库用于发送HTTP请求获取网页内容,以及 `BeautifulSoup` 或者 `lxml` 进行HTML解析,`pandas` 库用于处理数据并导出到CSV。
```shell
pip install requests beautifulsoup4 pandas
```
2. **编写爬虫脚本**:
使用 `requests.get()` 获取指定URL的内容,然后通过BeautifulSoup解析HTML结构找到所需的数据。这里假设我们要抓取的是商品列表页信息。
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
# 指定京东手机页面URL
url = 'https://list.jd.com/list.html?cat=10086&sort=R'
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'}
def parse_html(html):
soup = BeautifulSoup(html, 'lxml')
# 根据实际页面结构提取数据(例如商品名称、价格等)
data_list = []
for item in soup.find_all('div', class_='gl-item'):
name = item.find('a').text.strip()
price = item.find('.price').text.split()[0] # 提取价格部分
data_list.append({'名称': name, '价格': price})
return data_list
response = requests.get(url, headers=headers)
if response.status_code == 200:
html_content = response.text
parsed_data = parse_html(html_content)
else:
print(f"请求失败,状态码:{response.status_code}")
# 将数据存储到DataFrame中
df = pd.DataFrame(parsed_data)
# 导出到CSV文件
df.to_csv('jd_phone_data.csv', index=False)
```
3. **注意事项**:
- 网站可能会有反爬虫策略,比如设置验证码、动态加载等,你需要根据实际情况调整请求头、解析规则或者使用更高级的技术(如Selenium结合浏览器)。
- 如果网站结构经常变动,上述解析规则可能不再有效,需定期检查并更新。