使用正则公式来爬取豆瓣top250

3 篇文章 0 订阅
3 篇文章 0 订阅

        使用re软件包来进行爬取电影的排序、电影图片、名称、导演、主演、得分、评分人数

        下面是我运行的代码

import json
import requests
from requests.exceptions import RequestException
import re
import time


def get_one_page(url):
    try:
        headers = {
            'User-Agent': ''
        }
        response = requests.get(url, headers=headers)
        if response.status_code == 200:
            #print(response.text)
            return response.text
        return None
    except RequestException:
        return None


def parse_one_page(html):
    pattern = re.compile('<li>.*?="">(\d+)</em>.*?src="(.*?)".*?"title">(.*?)</span>.*?"">.*?导演:(.*?)<br>.*?average">(.*?)</span>.*?<span>(.*?)</span>', re.S)
    items = re.findall(pattern, html)
    print(items)

    for item in items:
        yield {
            'index': item[0],
            'image': item[1],
            'title': item[2],
            '导演': item[3],
            'score': item[4],
            'number': item[5]
        }


def write_to_file(content):
    with open('douban.txt', 'a', encoding='utf-8') as f:
        f.write(json.dumps(content, ensure_ascii=False) + '\n')


def main(offset):
    url = 'https://movie.douban.com/top250?start=0' + str(offset)
    html = get_one_page(url)

    for item in parse_one_page(html):
        print(item)
        write_to_file(item)


if __name__ == '__main__':
    for i in range(10):
        main(offset=i * 25)
        time.sleep(1)

        运行结果展示

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值