鱼C论坛

 找回密码
 立即注册
查看: 3188|回复: 8

[已解决]爬取豆瓣某一页的电影名称并保存为csv文件

[复制链接]
发表于 2020-11-27 22:18:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
采用urllib爬取https://movie.douban.com/chart 页面下的电影名称,将其保存在movie.csv文件中
最佳答案
2020-11-29 19:30:18
本帖最后由 suchocolate 于 2020-11-29 19:37 编辑
私はり 发表于 2020-11-29 19:24
竖着·排列怎么变


竖着排列
  1. import requests
  2. from lxml import etree
  3. import csv

  4. def main():
  5.     url = 'https://movie.douban.com/chart'
  6.     headers = {'user-agent': 'firefox'}
  7.     r = requests.get(url, headers=headers)
  8.     html = etree.HTML(r.text)
  9.     result = html.xpath('//span[@style="font-size:13px;"]/text()')
  10.     print(result)
  11.     with open('movies.csv', 'w', encoding='utf-8', newline='') as csvfile:   # 注意多了一个newline参数,防止空行出现。
  12.         writer = csv.writer(csvfile)
  13.         for item in result:
  14.             writer.writerow([item])
  15.     print('done')


  16. if __name__ == '__main__':
  17.     main()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-11-28 17:14:01 | 显示全部楼层
本帖最后由 suchocolate 于 2020-11-28 20:48 编辑
  1. from urllib import request
  2. from lxml import etree
  3. import csv


  4. def main():
  5.     headers = {'User-Agent': 'Firefox'}
  6.     req = request.Request('https://movie.douban.com/chart', headers=headers)
  7.     r = request.urlopen(req)
  8.     html = etree.HTML(r.read().decode('utf-8'))
  9.     result = html.xpath('//span[@style="font-size:13px;"]/text()')
  10.     print(result)
  11.     with open('movies.csv', 'w', encoding='utf-8') as csvfile:
  12.         writer = csv.writer(csvfile)
  13.         writer.writerow(result)
  14.     print('done')


  15. if __name__ == '__main__':
  16.     main()
复制代码


  1. import requests
  2. from lxml import etree
  3. import csv

  4. def main():
  5.     url = 'https://movie.douban.com/chart'
  6.     headers = {'user-agent': 'firefox'}
  7.     r = requests.get(url, headers=headers)
  8.     html = etree.HTML(r.text)
  9.     result = html.xpath('//span[@style="font-size:13px;"]/text()')
  10.     print(result)
  11.     with open('movies.csv', 'w', encoding='utf-8') as csvfile:
  12.         writer = csv.writer(csvfile)
  13.         writer.writerow(result)
  14.     print('done')


  15. if __name__ == '__main__':
  16.     main()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-29 19:24:32 | 显示全部楼层

竖着·排列怎么变
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-29 19:26:35 | 显示全部楼层

那个正则表达式怎么写的,最后那个两行代码是什么意思呢 ,大佬
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-29 19:30:18 | 显示全部楼层    本楼为最佳答案   
本帖最后由 suchocolate 于 2020-11-29 19:37 编辑
私はり 发表于 2020-11-29 19:24
竖着·排列怎么变


竖着排列
  1. import requests
  2. from lxml import etree
  3. import csv

  4. def main():
  5.     url = 'https://movie.douban.com/chart'
  6.     headers = {'user-agent': 'firefox'}
  7.     r = requests.get(url, headers=headers)
  8.     html = etree.HTML(r.text)
  9.     result = html.xpath('//span[@style="font-size:13px;"]/text()')
  10.     print(result)
  11.     with open('movies.csv', 'w', encoding='utf-8', newline='') as csvfile:   # 注意多了一个newline参数,防止空行出现。
  12.         writer = csv.writer(csvfile)
  13.         for item in result:
  14.             writer.writerow([item])
  15.     print('done')


  16. if __name__ == '__main__':
  17.     main()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-29 19:41:02 | 显示全部楼层
私はり 发表于 2020-11-29 19:26
那个正则表达式怎么写的,最后那个两行代码是什么意思呢 ,大佬

那个是xpath,是用来解析html的,你网上搜一下就知道了。
if __name__ == '__main__'当模块被直接运行时,以下代码块将被运行,当模块是被导入时,代码块不被运行。
习惯性写法,养成好习惯。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-29 20:15:28 | 显示全部楼层
suchocolate 发表于 2020-11-29 19:41
那个是xpath,是用来解析html的,你网上搜一下就知道了。
if __name__ == '__main__'当模块被直接运行时 ...

好的 多谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-29 20:19:18 | 显示全部楼层

import requests
from bs4 import BeautifulSoup
url2="https://movie.douban.com/chart"
hs={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36',}
res = requests.get(url2, headers=hs)
print(res.status_code)
text = res.text
#print(text)
soup = BeautifulSoup(text,'html.parser')
tags = soup('img')
for li in tags:
  result=li['alt']
  print(result)
我这个代码 的 alt  那几行代码是干什么的呀
tags = soup('img')
for li in tags:
  result=li['alt']
  print(result)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-30 20:11:18 | 显示全部楼层
私はり 发表于 2020-11-29 20:19
import requests
from bs4 import BeautifulSoup
url2="https://movie.douban.com/chart"

img元素的alt属性的内容,以后不知道内容多打印一下就知道了,学会自己分析。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-30 12:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表