group代码无法使用??
import re
import requests
import csv
#创建文件以放置电影下载链接
a = open('电影下载.csv',mode='w',encoding='utf-8')
f = open('电影下载.csv',mode='a+',encoding='utf-8')
csvwriter = csv.writer(f)
a.write('')
#获取母页面源代码
domain = 'https://www.dy2018.com/'
resp = requests.get(domain)
resp.encoding = 'gb2312'
#为获取子页面链接做准备
obj1 = re.compile(r'2022必看热片.*?
(?P
.*?)
',re.S)#找到子页面代码块
obj2 = re.compile(r")#找到代码块中需要的链接
obj3 = re.compile(r'
(?P.*?)
.*?'
r'',re.S)#找到电影名字和下载链接
result1 = obj1.finditer(resp.text)#获取子页面代码块
for it in result1:
ul = it.group('ul')
result2 = obj2.finditer(ul)#获取子页面相对值链接
child_href_list = []#创建list列表
for itt in result2:
child_href = domain + itt.group('href').strip('/')#将母页面链接和子页面相对值链接结合
child_href_list.append(child_href)#在list的结尾添加变量child_href
for href in child_href_list:
child_resp = requests.get(href)#提取子子页面源代码
child_resp.encoding = 'gb2312'
result3 = obj3.search(child_resp.text)#在子子页面源代码中找到电影名和下载链接
for ittt in result3:
dic = ittt.groupdict()
csvwriter.writerow(dic.values())
f.write(name_dowload)
f.write(download)
f.close()
a.close()
print('over')
#print(result3.group("name"))
#print(result3.group("download"))
Traceback (most recent call last):
File "D:\python爬虫\电影天堂.py", line 35, in
for ittt in result3:
TypeError: 're.Match' object is not iterable
内容
切换变量
成功将字典中的内容写入csv文件,并完成自动换行
re.search 扫描整个字符串并返回第一个成功的匹配
你用循环干啥呢??
它只返回一个
你打印看看result3,的类型,print(type(result3))