利用学习的网页数据获取方法,自主选择网站,获取网页中的数据,并将数据保存到csv格式文件中,以备下一步数据分析使用。 二、作业文档格式内容:(文档模板见附件) 1、数据描述: (1) 数据来源:指出网站名称,网页的网址,网页的一个截图 (2) 所要获取的数据项目:列出从网页中获取哪些数据项 2、数据获取过程及代码: (1) 获取网页代码 (2) 解析网页代码并提取数据 (3) 将数据写入csv格式文件。
时间: 2024-02-23 09:57:10 浏览: 41
网页数据采集
好的,根据您的要求,我为您提供一份参考文档:
一、数据描述:
(1) 数据来源:我们选择了豆瓣电影网站(https://movie.douban.com/)作为数据来源,以下是网站的一个截图:
![douban-movie](https://img-blog.csdnimg.cn/20220106132816388.png)
(2) 所要获取的数据项目:我们选择从豆瓣电影网站获取以下数据项:
- 电影名称
- 电影评分
- 电影导演
- 电影主演
- 电影类型
- 电影地区
- 电影上映时间
二、数据获取过程及代码:
(1) 获取网页代码:
我们使用Python的Requests库来获取豆瓣电影网站的网页代码,代码如下:
```python
import requests
url = "https://movie.douban.com/top250"
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"
}
response = requests.get(url, headers=headers)
html = response.text
print(html)
```
(2) 解析网页代码并提取数据:
我们使用Python的BeautifulSoup库来解析豆瓣电影网站的网页代码,并提取我们所需要的数据项,代码如下:
```python
import requests
from bs4 import BeautifulSoup
import csv
url = "https://movie.douban.com/top250"
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"
}
response = requests.get(url, headers=headers)
html = response.text
soup = BeautifulSoup(html, "html.parser")
movies = []
for item in soup.find_all("div", class_="item"):
movie = {}
movie["name"] = item.find("div", class_="hd").find("span", class_="title").text.strip()
movie["score"] = item.find("span", class_="rating_num").text.strip()
movie["director"] = item.find("div", class_="bd").find("p").text.strip().split("\n")[0].split(":")[-1].strip()
movie["actors"] = item.find("div", class_="bd").find("p").text.strip().split("\n")[1].split(":")[-1].strip()
movie["genre"] = item.find("div", class_="bd").find("p").text.strip().split("\n")[2].split(":")[-1].strip()
movie["country"] = item.find("div", class_="bd").find("p").text.strip().split("\n")[3].split(":")[-1].strip()
movie["release_date"] = item.find("div", class_="bd").find("p").text.strip().split("\n")[4].split(":")[-1].strip()
movies.append(movie)
print(movies)
```
(3) 将数据写入csv格式文件:
最后,我们使用Python的csv库将获取到的数据写入csv格式文件,代码如下:
```python
import requests
from bs4 import BeautifulSoup
import csv
url = "https://movie.douban.com/top250"
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"
}
response = requests.get(url, headers=headers)
html = response.text
soup = BeautifulSoup(html, "html.parser")
movies = []
for item in soup.find_all("div", class_="item"):
movie = {}
movie["name"] = item.find("div", class_="hd").find("span", class_="title").text.strip()
movie["score"] = item.find("span", class_="rating_num").text.strip()
movie["director"] = item.find("div", class_="bd").find("p").text.strip().split("\n")[0].split(":")[-1].strip()
movie["actors"] = item.find("div", class_="bd").find("p").text.strip().split("\n")[1].split(":")[-1].strip()
movie["genre"] = item.find("div", class_="bd").find("p").text.strip().split("\n")[2].split(":")[-1].strip()
movie["country"] = item.find("div", class_="bd").find("p").text.strip().split("\n")[3].split(":")[-1].strip()
movie["release_date"] = item.find("div", class_="bd").find("p").text.strip().split("\n")[4].split(":")[-1].strip()
movies.append(movie)
with open("movies.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.DictWriter(f, fieldnames=["name", "score", "director", "actors", "genre", "country", "release_date"])
writer.writeheader()
for movie in movies:
writer.writerow(movie)
```
以上就是获取豆瓣电影网站数据并保存到csv格式文件的完整代码。
阅读全文