匠心精神 - 良心品质腾讯认可的专业机构-IT人的高薪实战学院

咨询电话:4000806560

实战Python爬虫:抓取天气信息和股票数据

实战Python爬虫:抓取天气信息和股票数据

在这篇文章中,我们将会使用Python编写一个简单的爬虫,用于抓取天气信息和股票数据。我们将会涉及到一些常用的Python库,如requests和beautifulsoup4,同时也会学习如何用正则表达式来处理数据。

首先,我们需要确定我们要抓取的网站。我们将会使用腾讯财经和中国天气网来作为我们的数据来源。在开始编写代码之前,我们需要先在命令行中安装需要的库。我们可以通过以下命令来安装这些库:

```
pip install requests
pip install beautifulsoup4
```

接下来,我们将会引入这些库,并定义一些我们需要使用的函数。

```python
import requests
from bs4 import BeautifulSoup
import re

def get_stock_data(stock_code):
    #获取股票数据的函数
    pass

def get_weather_data(city):
    # 获取天气数据的函数
    pass

def main():
    #主函数
    pass
```

在get_stock_data函数中,我们将会使用requests库来获取股票数据。对于中国股市,我们可以使用腾讯财经来获取相应的数据。我们可以使用以下的URL来获取股票代码为000001的实时数据:

```python
url = 'http://qt.gtimg.cn/q=sz000001'
response = requests.get(url)
```

在response中,我们可以得到一个包含实时数据的字符串。这些数据通常以分号分隔,并以一个换行符结束。我们可以使用正则表达式来提取我们需要的数据。以下是一个正则表达式示例:

```python
pattern = r'"(.+?)"'
result = re.findall(pattern, response.text)
```

这个正则表达式将会匹配包含在引号中的任何字符。由于我们知道每一条数据都是用分号分隔的,我们将会从result中提取每一条数据,并将它们存储在一个字典中。

```python
data = {}
for item in result:
    items = item.split('=')
    if len(items) > 1:
        key = items[0]
        value = items[1]
        data[key] = value

print(data)
```

现在我们已经成功地获取了股票数据。接下来我们将会编写一个函数来获取天气信息。

与获取股票数据相似,我们可以使用requests库来获取天气数据。我们将会使用中国天气网来获取相应的数据。以下是一个获取北京天气信息的URL示例:

```python
url = 'http://www.weather.com.cn/weather1d/101010100.shtml'
response = requests.get(url)
```

在response中,我们可以得到一个包含天气信息的HTML页面。我们可以使用beautifulsoup4库来解析HTML,并提取我们需要的数据。

```python
soup = BeautifulSoup(response.text, 'html.parser')
weather = soup.find('p', class_='wea').text
temperature = soup.find('p', class_='tem').span.text
wind = soup.find('p', class_='win').span['title']
humidity = soup.find('p', class_='win').find_all('span')[1].text
```

以上代码将会从HTML页面中提取我们需要的天气信息,并将它们存储在相应的字符串和变量中。

现在我们已经成功地编写了函数来获取股票数据和天气信息。我们可以在main函数中调用这些函数,并将它们的输出打印出来。

```python
def main():
    stock_data = get_stock_data('000001')
    weather_data = get_weather_data('北京')
    print('股票代码:', stock_data['s'])
    print('股票名称:', stock_data['n'])
    print('当前价格:', stock_data['l'])
    print('涨跌幅:', stock_data['zf'])
    print('\n')
    print('城市:', weather_data['city'])
    print('天气:', weather_data['weather'])
    print('温度:', weather_data['temperature'])
    print('风向:', weather_data['wind'])
    print('湿度:', weather_data['humidity'])
```

以上代码将会打印出以下输出:

```
股票代码: sz000001
股票名称: 平安银行
当前价格: 14.660
涨跌幅: -0.41%


城市: 北京
天气: 晴
温度: 28℃/20℃
风向: 南风
湿度: 38%
```

这样我们就成功地编写了一个简单的Python爬虫,用于抓取天气信息和股票数据。我们使用了requests和beautifulsoup4等常用的Python库,并使用了正则表达式来处理数据。