python爬虫爬取京东商品
时间: 2023-09-02 18:08:40 浏览: 116
以下是一个简单的Python爬虫程序,用于爬取京东商品的数据。
首先,我们需要导入相关的库,包括requests、BeautifulSoup和pandas。
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
```
然后,我们需要定义一个函数,用于获取商品页面的HTML代码。
```python
def get_html(url):
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'}
try:
r = requests.get(url, headers=headers)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
return ""
```
接下来,我们需要定义一个函数,用于解析商品页面的HTML代码,并提取所需的数据。
```python
def parse_html(html):
soup = BeautifulSoup(html, 'html.parser')
goods_list = soup.find_all('li', {'class': 'gl-item'})
data = []
for goods in goods_list:
title = goods.find('div', {'class': 'p-name'}).find('a').text.strip()
price = goods.find('div', {'class': 'p-price'}).find('strong').text.strip()
data.append({'title': title, 'price': price})
return data
```
最后,我们需要定义一个函数,用于将数据保存到CSV文件中。
```python
def save_to_csv(data, filename):
df = pd.DataFrame(data)
df.to_csv(filename, index=False)
```
现在,我们可以编写主程序,用于爬取京东商品数据。
```python
if __name__ == '__main__':
url = 'https://search.jd.com/Search?keyword=python'
html = get_html(url)
data = parse_html(html)
save_to_csv(data, 'jd_goods.csv')
```
在程序运行后,我们将获得一个名为“jd_goods.csv”的CSV文件,其中包含所爬取的京东商品数据。
阅读全文