资讯详情

python:requests实践

# -*- codeing = utf-8 -*- # @Time : 2022/7/26 17:12 # @Author : Xing # @File : film_two.py # @Software: PyCharm   import requests import re import xlwt   def main():     baseurl = "https://www.dytt8.net/index2.htm"  # 每个网页url都有规律     # 1.爬网页,逐页分析     data_list = getData(baseurl)     # 2.保存数据     sava_path = "电影天堂快雷板块.xls"     saveData(data_list, sava_path)   # 正则匹配 """正则写不好,爬的东西太乱,根本不是你想要的。""" obj1 = re.compile(r"电影资源迅雷</a>]<a href='(?P<child_ul>.*?)'", re.S)  # 匹配子链接 obj2 = re.compile(r'<title>(?P<name>.*?)</title>.*?<a target="_blank" href="(?P<download>.*?)">', re.S)   # 爬取网页 def getData(baseurl):     # 匹配页面中的子链接     result1 = obj1.finditer(ask(baseurl))      # 将获得的子链接拼接成可访问url列表中存在链接     child_url_list = []  # 存储子链接     for it in result1:         url = it.group("child_ul")         # print(url)         # 拼接页面链接并存储在列表中         child_url = "https://www.dytt8.net"   url         child_url_list.append(child_url)      # 访问子链接遍历url数据捕获(类似有点重复)     data_list = []  # 所有电影信息保存息     for itt in child_url_list:         result2 = obj2.finditer(ask(itt))         for ittt in result2:  # 不能直接用result2.group(),返回的依旧是一个对象要遍历,search可以直接group,finditer不行需要遍历
            # print(ittt.group("name"))
            # print(ittt.group("download"))
            data = []  # 保存一部电影的信息(放在上一层循环里,可能在一层用不了不互通,最好在那一层用(变动)就定义在那一层)
            data.append(ittt.group("name"))
            data.append(ittt.group("download"))
        data_list.append(data)
    # print(data_list)
    return data_list


def saveData(data_list, sava_path):
    print("save...")
    book = xlwt.Workbook(encoding="utf-8", style_compression=0)  # 创建workbook对象
    sheet = book.add_sheet('电影天堂', cell_overwrite_ok=True)  # 创建工作表(在同一个文件下,新建的工作表:不行!)
    col = ("电影名", "磁力链接")
    for i in range(0, 2):
        sheet.write(0, i, col[i])  # 添加表的列名

    for j in range(0, 18):  # 逐条写入
        print("第%d条" % j)
        data = data_list[j]  # 从列表中逐个电影拿出来,写入表格
        for k in range(0, 2):
            sheet.write(j + 1, k, data[k])
    book.save(sava_path)  # 保存


# 访问指定的url链接并返回页面源代码
def ask(url):
    resp = requests.get(url)
    resp.encoding = "gb2312"  # requests默认utf-8解码需要改动一下
    # print(resp.text) # 能拿到由服务器加载的页面目标代码
    return resp.text  # 返回一个网页源代码


if __name__ == "__main__":
    main()
    print("爬取完毕!")

标签: itt连接器kpse08f24

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台