帮漂亮的大眼学妹提问:Python语言爬取douban上top500的电影的名字,存入movie.csv文件怎么做?
2条回答 默认 最新
- 一位零基础入门的测开 2020-04-03 14:39关注
1、确定url,设置请求头user-agent,利用requests库请求并得到网页源码
2、分析返回的源码,利用xpath解析源码得到想要获取的内容并以字典的方式存到列表中3、
3、遍历列表将数据写入csv文件中```# coding = utf-8
Author:'Alvin'
Date: '2018/8/10'
import requests
from lxml import html
import csv#step1 确定url,设置请求头user-agent,利用requests库请求并得到网页源码
def get_content():
url = 'https://movie.douban.com/top250'
user_agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'
headers = {
"User_Agent": user_agent
}
response = requests.get(url, headers=headers)
get_movie_list(response.content)#setp2 分析返回的源码,利用xpath解析源码得到想要获取的内容并以字典的方式存到列表中
def get_movie_list(source):
selector = html.document_fromstring(source)
movieList = selector.xpath('//div[@class="info"]')
movies = []
for movie in movieList:
title = movie.xpath('div[@class="hd"]/a/span[@class="title"]/text()')
other = movie.xpath('div[@class="hd"]/a/span[@class="other"]/text()')
url = movie.xpath('div[@class="hd"]/a/@href')
rate_num = movie.xpath('div[@class="bd"]/div[@class="star"]/span[@class="rating_num"]/text()')
quote = movie.xpath('div[@class="bd"]/p[@class="quote"]/span/text()')movieDic = {} movieDic["title"] = ''.join(title[0] + other[0]) movieDic["url"] = url[0] movieDic["star"] = rate_num[0] movieDic["quote"] = quote[0] movies.append(movieDic) write_data(movies)
#step3 遍历列表将数据写入csv文件中
def write_data(movies):
with open("douban.csv", 'w', encoding="UTF-8") as f:
writer = csv.DictWriter(f, fieldnames=['title', 'star', 'quote', 'url'])
writer.writeheader()
for mov in movies:
print("正在写入:" + mov["title"])
writer.writerow(mov)if name == "__main__":
get_content()解决 无用评论 打赏 举报
悬赏问题
- ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
- ¥15 活动选择题。最多可以参加几个项目?
- ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
- ¥15 vs2019中数据导出问题
- ¥20 云服务Linux系统TCP-MSS值修改?
- ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
- ¥20 怎么在stm32门禁成品上增加查询记录功能
- ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面
- ¥50 NT4.0系统 STOP:0X0000007B
- ¥15 想问一下stata17中这段代码哪里有问题呀