利用python--正则--爬取豆瓣TOP250排行榜

话不多说直接贴上代码
import requests
import re
import json
#定义一个函数,用于解析网页内容
def pase_detail(url):
content = requests.get(url).content.decode()
movie_content=re.findall(’

  • .?
    .? (.?).?

    .?(.?)
    .?(\d{4}) .?(.*?)’,content,re.S)

    for item in movie_content:
        movie_name=item[0]
        movie_direct=item[1].replace("\n","").strip().replace("   ","--")
        movie_year=item[2]
        movie_score=item[3]
        yield {
        "movie_name":movie_name,
        "movie_direct":movie_direct,
        "movie_year":movie_year,
        "movie_score":movie_score,
        }
    
  • #定义一个函数用于获取后的文本存储
    def write_content(movie_info):
    with open(‘douban_top250.txt’,‘a+’,encoding=‘utf-8’) as fp:
    fp.write(json.dumps(movie_info,ensure_ascii=False)+’\n’)

    if name==“main”:
    url = ‘https://movie.douban.com/top250?start={}&filter=
    for page in range(11):
    for movie_msg in pase_detail(url.format(page*25)):
    print(movie_msg)
    write_content(movie_msg)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是用Python的requests和xpath和则表达式豆瓣电影top250详情页的代码: ```python import requests from lxml import etree import re def get_movie_details(url): # 发送请求获页面内容 response = requests.get(url) html = response.content.decode('utf-8') # 解析页面内容 selector = etree.HTML(html) # 获电影名称 movie_name = selector.xpath('//h1/span/text()')[0] # 获导演和主演信息 director_and_cast = selector.xpath('//div[@id="info"]/span[1]/span[@class="attrs"]/a/text()') director = director_and_cast[0] cast = director_and_cast[1:] # 获上映年份、地区、类型 year_country_type = selector.xpath('//div[@id="info"]/text()') year = re.findall('\d{4}', year_country_type[1])[0] country = year_country_type[2].strip().split('/')[0] type = year_country_type[2].strip().split('/')[-1] # 获评分和评价人数 rating = selector.xpath('//strong[@class="ll rating_num"]/text()')[0] rating_num = selector.xpath('//div[@class="rating_sum"]/a/span/text()')[0] # 获电影简介 summary = selector.xpath('//div[@class="indent"]/span[@class="all hidden"]/text()')[0] # 构造电影信息字典 movie_info = { '名称': movie_name, '导演': director, '主演': cast, '年份': year, '地区': country, '类型': type, '评分': rating, '评价人数': rating_num, '简介': summary.strip(), } return movie_info if __name__ == '__main__': urls = ['https://movie.douban.com/top250?start={}'.format(i) for i in range(0, 250, 25)] for url in urls: response = requests.get(url) html = response.content.decode('utf-8') selector = etree.HTML(html) # 获电影详情页链接 movie_links = selector.xpath('//div[@class="hd"]/a/@href') for link in movie_links: movie_info = get_movie_details(link) print(movie_info) ``` 这段代码会豆瓣电影top250列表页面中每部电影的详情页,并从详情页中提电影名称、导演和主演、上映年份、地区、类型、评分、评价人数、电影简介等信息,并打印出来。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值