1、明确爬取的网址,并检查所要获取的内容是否在网页源代码中
2、加载所有的包,并尝试获取网页源代码
3、解析数据
4、开始匹配
5、将数据保存为csv格式,方便数据分析时使用
网址是:https://movie.douban.com/chart
预获取的内容:
在网页上面右击——检查,发现想要的数据均可以从源代码中直接获取
#获取页面源代码 url = "https://movie.douban.com/chart" headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36" } rep = requests.get(url,headers = headers) print(rep.text)
成功获取,和在浏览器中查看的源代码是一致的,没有乱码
欲获取的内容应该有一致的结构,里面不同的内容但是我们不需要的可以使用.*?过滤掉,
想要的内容使用(?P
#开始解析 obj = re.compile('.*?.*?)">.*?4、开始匹配(可以查看匹配结果)(?P
.*?(?P.*?).*?(?P .*?)',re.S)
#进行匹配 result = obj.finditer(rep.text) for i in result: print(i.group("name")) print(i.group("time")) print(i.group("score")) print(i.group("num"))5、将数据保存为csv格式(可以将第4步省略掉)
数据保存为csv格式,方便数据分析时使用
#保存成文件,方便数据分析时使用 result = obj.finditer(rep.text) f = open("data.csv",mode = "w") csvwriter = csv.writer(f) for it in result: #存储为字典 dic = it.groupdict() csvwriter.writerow(dic.values()) #将打开的文件关闭 f.close() print("success")完整代码[可直接运行]
#导入所需要的包 import requests import re import csv #获取页面源代码 url = "https://movie.douban.com/chart" headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36" } rep = requests.get(url,headers = headers) #开始解析 obj = re.compile('.*?.*?)">.*?(?P
.*?(?P.*?).*?(?P .*?)',re.S) #进行匹配 result = obj.finditer(rep.text) #保存成文件,方便数据分析时使用 f = open("data.csv",mode = "w") csvwriter = csv.writer(f) for it in result: #存储为字典 dic = it.groupdict() csvwriter.writerow(dic.values()) #将打开的文件关闭 f.close() print("success")
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)