Python爬虫使用正则表达式的方法和优缺点
前言
我看到最近有几部电影很受欢迎。我查了一下猫眼电影的数据,发现里面有一个列表,里面有各种经典和热门电影。然后我觉得电影的封面图挺好看的。一个个下载费时费力,于是突发奇想,好像可以用最近学的东西来满足自己的需求。学了正则表达式后,想感受一下它在爬虫中的效果和优缺点。
目标:登上电影封面图片前100名
Top100榜单规则:猫眼电影库中的前100部经典电影按照评分和评分人数从高到低进行综合排序,每天上午10: 00更新。相关数据来源于“猫眼电影库”。
以下是我的步骤:
(1)查看页面元素,找到包含图片路径的代码段
(2)分析图片在网页上的唯一属性,以便以后获得正确的图片位置信息
(3)因为需要翻页,观察多个页面的URL变化
(4)综合以上几点,写出适当的正则表达式
1.python标准库中的re模块提供了正则表达式的所有功能,直接引入;requests模块是爬虫常用的http库,urllib.requests是最后一个用来写文件的函数
import re import requests import URL lib . requests 2,首先接收URL地址的HTML页面,然后转换成字符串形式(正则表达式为匹配字符串),第一个pattern1缩小范围抓取目标部分,result1接收匹配结果,此时所有的封面地址都在里面。
response=requests . get(URL)response=str(response . content)pattern 1=' dl class=' board-wrapper '。Div class=' pager-main ' '结果1=re。编译(pat)。全部查找(响应)3。第二个规则匹配图片的地址信息
pat 2=' img data-src=' http :https://(。\.jpg)' photos=re.compile (pat1)。findall (re1 [0])此时,100张图片的信息被抓取,如下图:
4.继续下一步,命名每张图片,并需要正确的图片地址以避免重复
X=1表示名称:中的im gur im gname=' d :/top 100/' str(I/10)str(x)'。jpg ' imgur=' https://' imgur URL lib . request . URL retrieve(imgur,filename=imgname) x=
对于I在范围(0,100,10): URL=' http://Mao Yan.com/board/4?Offset=' str (I) get _ one _ page (URL,I) #定义一个函数。多次调用是一个比较简单的应用,也是我自己学习后的一次实践。在这个例子中,我使用正则表达式来实现它,还有其他方法,可能很简单,比如在更复杂的爬虫项目中使用的BeautifulSoup和XPath。
摘要
以上就是本文的全部内容。希望本文的内容对大家的学习或工作有一定的参考价值。谢谢你的支持。
版权声明:Python爬虫使用正则表达式的方法和优缺点是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。