Python 爬取豆瓣top250

Python 爬取豆瓣top250,第1张

Python 爬取豆瓣top250
#第一步,拿到源代码 requests
#第二步拿到想要的数据 re
import re
import requests
import csv

for page in range(0,226,25):
    url = "https://movie.douban.com/top250?start=%s&filter="%page
    print(url)
    header = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"}
    resp = requests.get(url,headers=header)
    page_content = resp.text #网页源代码保存在这
#第二步
    obj = re.compile('.*?(?P.*?).*?

.*?
(?P.*?) .*?.*?(?P.*?).*?.*?(?P.*?)',re.S) result = obj.finditer(page_content) # with open("data.csv","w",encoding="utf-8") as f: 没成功 f = open("data.csv",mode="a+",encoding='utf-8') #创建一个csv文件 mode="w",mode = "a"持续写入不覆盖 csvwrite = csv.writer(f)#具有写入的功能 for i in result: # print(i.group("name")) # print(i.group("year").strip())#.strip()作用是去掉多余的空格 # print(i.group("score").strip())#.strip()作用是去掉多余的空格 # print(i.group("number").strip())#.strip()作用是去掉多余的空格 dic = i.groupdict()#将(?P<名>.*?)的值存入字典 dic['year'] = dic['year'].strip()#因为year前边有空格,所以给它去掉空格 csvwrite.writerow(dic.values())#将字典里值写入csv文件 f.close() resp.close()

犯过的错误:

1.循环要对齐,格式要对齐
2.mode =‘a’ 如果是w就会出现只有一页数据的现象
r 只读模式
w 写模式
a 追加写模式

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5491113.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存