用正则爬取豆瓣电影排行榜

import requests
import re
import chardet
url = "https://movie.douban.com/chart"
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36','Cookie':'ll="118088"; bid=pEvZmYymg9w; __yadk_uid=MBVdmoWQpfuaAduWgI3sr27xdVb2SpxL; _vwo_uuid_v2=D48A302F0862238CF3F23ACA0683DA5FD|96bd09ebd9b5983c45ac0b80abdd5580; trc_cookie_storage=taboola%2520global%253Auser-id%3Daeb8d923-8e31-45ff-9a11-7a4a24c2fd2a-tuct46c9718; viewed="6898903"; gr_user_id=3ca08a9d-8af2-4ae5-b72c-1bd6343499e3; __utmc=30149280; __utmz=30149280.1569503137.3.3.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; __utmc=223695111; __utmz=223695111.1569503137.2.2.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; acw_tc=276082a815695948946125465eed822b29faf81d8ad94d5cf0d821287a5f92; ap_v=0,6.0; _pk_ref.100001.4cf6=%5B%22%22%2C%22%22%2C1569594896%2C%22https%3A%2F%2Fwww.baidu.com%2Flink%3Furl%3D9Tr6b3hwv1bkFIt9iIEG9pjP2rKLHFpsgJYvz_JZ4P-gjFxDN7hKNDQUVT_-57rw%26wd%3D%26eqid%3D99624ff700502a24000000035d8cb79c%22%5D; _pk_id.100001.4cf6=0d8c49bca23e986a.1568892239.4.1569594896.1569541094.; __utma=30149280.1815959067.1568892238.1569541094.1569594896.5; __utma=223695111.1519397804.1568892239.1569541094.1569594896.4'}
response=requests.get(url,headers=headers,timeout=2)
response.encoding = chardet.detect(response.content)['encoding']

title = r'title="(.*?)">'
titles=re.findall(title,response.text,re.S)
urs=r'<a class="nbg" href="(.*?)"  title='
urls=re.findall(urs,response.text,re.S)
score=r'class="rating_nums">(.*?)</span>'
scores=re.findall(score,response.text,re.S)
content=re.compile(r'<p class="pl">(.*?)</p>',re.S)
contents=re.findall(content,response.text)
for i in range(0,11):
    print("片名:",titles[i])
    print("评分:",scores[i]) 
    print("详情:",contents[i])
    print("网址:",urls[i])

结果
结果

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python使用则表达式暴力豆瓣电影是一种可以快速获电影信息的方法。首先,我们需要使用requests库获豆瓣电影页面的HTML源代码。接下来,使用则表达式对源代码进行匹配和提。例如,如果我们想获电影的名称、评分和导演信息,我们可以使用则表达式匹配对应的HTML标签并提出所需的文本信息。比如使用则表达式" <span class="title">(.+?)</span>" 可以匹配到电影名称所在的标签。 接下来,我们可以通过循环遍历的方式不断获更多的电影信息。假设每个页面显示20部电影,我们可以使用则表达式找到下一页的链接,并不断访问并抓数据。 当然,使用则表达式数据也有一些缺点。因为则表达式往往较为复杂,所以代码可读性较差,容易出错和不易维护。此外,如果网页结构发生变化,我们需要手动修改则表达式以适应变化,工作量较大。因此,当网页结构较为复杂或者需要大量数据时,我们可以考虑使用更强大的虫框架如Scrapy,它集成了更多方便的功能,如自动跟踪链接和处理异步加载的数据等。 总之,对于简单的任务,Python使用则表达式暴力豆瓣电影是一种比较直接且有效的方法。但是需要注意的是遵守豆瓣网站的虫规则,并且避免频繁请求造成对网站的负载过大。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值