介绍
这篇文章主要介绍”怎么用python爬取猫眼电影的前100部影片”,在日常操作中,相信很多人在怎么用python爬取猫眼电影的前100部影片问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答“怎么用python爬取猫眼电影的前100部影片”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
<节><代码> 代码> <代码>进口进口请求re 代码> <代码>从bs4进口BeautifulSoup 代码> <代码>从lxml进口etree 代码> <代码> 代码> <代码>进口回溯导入csv 代码> <代码> #定义一个函数获取豆瓣电影第一页代码> <代码> def get_one_page (url,代码=& # 39;utf - 8 # 39;): 代码> <代码>,,头={& # 39;用户代理# 39;:& # 39;Mozilla/5.0 (Windows NT 10.0;Win64;x64) AppleWebKit/537.36 (KHTML,像壁虎)Chrome/75.0.3770.90 Safari 537.36 & # 39;} 代码> <代码>,代码,试题:> <代码>,,,r=请求。get (url,标题=头)代码> <代码>,,,如果r。status_code==200: 代码> <代码>,,,,,r。代码编码=> <代码>,,,,,返回r。文本代码> <代码>,,,代码,其他:> <代码>,,,,,,打印(“相应失败“)代码> <代码>,,,,,代码,返回所有> <代码>,代码,除了:> <代码>,,,代码,traceback.print_exc() > <代码> def过程(生):代码> <代码>,,对吧=raw.split (“@") 代码> <代码>,代码,返回正确的[0]> <代码> def面积(a): 代码> <代码>,,如果一个[1]==?“:代码> <代码>,,,,返回一个[16:]代码> <代码>,代码,其他:> <代码>,,,代码,返回所有> <代码>
代码> <代码> def parse_one_page (slst、html): 代码> <代码>,,#正则表达式代码> <代码>,,#排名=re.findall (& # 39; & lt; dd>。* ? & lt;我类=癰oard-index。* ?祝辞(\ d +) & lt;/i> & # 39;, html, re.S) 代码> <代码>,,# img=re.findall (& # 39; data-src=https://www.yisu.com/zixun/??)”。* ? > ', html, re.S) 代码> <代码>,,# name=re.findall (& # 39; & lt; p类=皀ame"。* ?祝辞& lt; . * ?祝辞(. * ?)& lt;/a> & # 39;, html, re.S) 代码> <代码>,,#星=re.findall (& # 39; & lt; p类=皊tar"祝辞(. * ?)& lt;/p> & # 39;, html, re.S) 代码> <代码>,,#时间=re.findall (& # 39; & lt; p类=皉eleasetime"祝辞(. * ?)& lt;/p> & # 39;, html, re.S) 代码> <代码>,,# print() 代码> <代码>,,#正则表达式别忘了加上r,防止转义,否则会报错代码> <代码>,,#把上面的正则表达式合在一起代码> <代码>,,模式=re.compile (" # 39; & lt; dd>。* ? & lt;我类=癰oard-index。* ?祝辞(\ d +) & lt;/i>。* ? data-src=https://www.yisu.com/zixun/??)”。* ? > . * ?(. * ?)
。* ?(. * ?)
。* ?<? ?> (. * ?) <我类="分数"> (. * ?)
", re.S) 代码> <代码>,,物品=re.findall(模式中,html) 代码> <代码>,,#打印(物品)代码> <代码>,的项目,项目:代码> <代码>,,,,#收益率就相当于返回的功能,但也有所不同,收益率语句把程序编程迭代器代码> <代码>,,,,产量{代码> <代码>,,,,,,& # 39;排名# 39;:项目[0],代码> <代码>,,,,,,& # 39;img # 39;:流程(项目[1]),代码> <代码>,,,,,,& # 39;MovieName& # 39;:项目[2],代码> <代码>,,,,,,“star":条目[3].strip()[3:], 代码> <代码>,,,,,,“time":条目[4].strip()[5:15], 代码> <代码>,,,,,,“area":区域(项目[4].strip()), 代码> <代码>,,,,,,“score": str(项目[5])+ str(项目[6])代码> <代码>,,,代码,}> <代码>,,#返回““代码> <代码> def write_to_file(项):代码> <代码>,与开放,(“猫眼top100.csv", & # 39;一个# 39;,编码=皍tf_8_sig",换行符=啊?f: 代码> <代码>,,,,#一个追加模式换行区分换行符代码> <代码>,,,,字段名=[& # 39;排名# 39;& # 39;img # 39;, & # 39; MovieName& # 39;, & # 39;星# 39;,& # 39;时间# 39;,& # 39;区域# 39;,& # 39;分数# 39;]代码> <代码>,,,w=csv。DictWriter (f,字段名=字段名),#字典写入到csv 代码> <代码>,,,,# w.writeheader() 代码> <代码>,,,,w.writerow(项)代码> <代码>,代码,返回““> <代码> def down_img(名称、网址、num): 代码> <代码>,代码,试题:> <代码>,,,,反应=requests.get (url) 代码> <代码>,,,,张开(& # 39;C:/用户/华为/桌面/py爬虫/豆瓣/& # 39;+名字+ & # 39;jpg # 39;, & # 39; wb # 39;) f: 代码> <代码>,,,,,代码,f.write (response.content) > <代码>,,,,,,打印(“第% s张图片下载完毕“% str (num)) 代码> <代码>,,,,,,打印(“=? 20)代码> <代码>,null null怎么用python爬取猫眼电影的前100部影片