python 爬虫-----爬取 豆瓣Top250 排行榜电影
step1.
打开网页 并且产看源代码 使用shift+F 搜索原网页中的想查找的内容 发现源代码中存在相关信息 说明该网页是服务器加载的数据 所以我们的任务就是提取源代码并且利用re正则表达式提取数据
step2.
输入代码,请求获取网页源代码,发现无响应,说明网页采用反扒措施,需要更改用户代理User_Agent
import requests import re url = "https://movie.douban.com/top250" resp = requests.get(url) print(resp.text)
step3.
输入headers 更改代理,解决反扒
import requests import re url = "https://movie.douban.com/top250" header = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.52" } resp = requests.get(url, headers=header) page_content = resp.text
step4.
数据解析,在源代码中搜索希望得到的数据,从前方某一处设置为起始正则表达式匹配地址
step5.书写代码,并闯将CSV文件,将数据储存到CSV文件中去
import requests import re import csv url = "https://movie.douban.com/top250" header = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.52" } resp = requests.get(url, headers=header) page_content = resp.text #解析数据 obj = re.compile(r'<li>.*?<div class="item">.*?<span class="title">(?P<name>.*?)' r'</span>.*?<p class="">.*?<br>(?P<year>.*?) ' r'.*?<span class="rating_num" property="v:average">(?P<score>.*?)</span>' r'.*?<span>(?P<number>.*?)</span>', re.S) result = obj.finditer(page_content) f = open("datamovie.csv", mode="w")#创建文件并打开 csvwriter = csv.writer(f)#写入文件 for it in result: # print(it.group("name")) # print(it.group("score")) # print(it.group("number")) # print(it.group("year").strip())#Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。 # #注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。 dic = it.groupdict()#创建字典 dic['year'] = dic['year'].strip() csvwriter.writerow(dic.values()) f.close()#关闭文件 print("over!") resp.close()#关闭连接
hello my world
本文来自博客园,作者:slowlydance2me,转载请注明原文链接:https://www.cnblogs.com/slowlydance2me/p/16833844.html