今日爬虫练习

import requests
import re,os

#1.起始目标
shouyeurl='https://www.hifini.com/'
#伪装
headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36'}



# 1.发送请求
def get_data(url):
    response = requests.get(url, headers=headers)
    if response.status_code==200:
        html_data=response.text
        return html_data
    else:
        print(response.status_code)

#2.解析数据
def parse_data(data):
    z='<li\sclass="media\sthread\stap\s\s".*?<div\sclass="subject\sbreak-all">.*?<a\shref="(.*?)"(.*?)</a>'
    result=re.findall(z,data,re.S)
    # print(result)
    for i in result:
        # print(i)
        href="https://hifini.com/"+i[0]#详情链接
        name=i[1]
        print(name)
        print(href)
        print('---'*12)
        get_singer_link(href)

#向详情页发起请求
def get_singer_link(link):
    song_html_data=get_data(link)
# https://www.hifini.com/get_music.php?key=uNhoYJwwwHiFiNicomAq8wTYXz1OT8jqodm9zwvrrIvm9D95XvUtO3zTozHHFWKU54V7SVdbYf9F1lZg731yM3xxHiFiNixxKWZewwwHiFiNicomKs&p=KUDEIHJHE4GBIJIULIZTQFDUKBNQOMIRE4HBABK5GQAA4WBAIBIFYWB3HQBH6PJFBUAQYKAHEFIQ43YHEYOBADQOBNOBMMYCA4OV2RSYP5BCKOYSHYSFCGRAKMMBURL7KBZR4OI6FMDCWJZBLMJSQPABAQFQIEKEI4MV6KQPEITQEJZHKB3HO4ADFU2XSXBDLJ3SCVR6
    song_re="music:\s\[.*?title:\s'(.*?)',.*?url:\s'(.*?)',"
    r=re.findall(song_re,song_html_data,re.S)
    print("歌曲信息:",r)
    for i in r:
        song_name=i[0]
        song_link=i[1]
        print("歌名:",song_name)
        print("歌曲链接:",song_link)
        print('=++++++++++++++++')

        data_byts=requests.get(song_link,headers=headers).content
        print(data_byts)


        if not os.path.exists('歌曲'):
            os.makedirs('歌曲')

        song_name=re.sub('[\/:*?"<>|]','-',song_name)
        with open('歌曲\{}.m4a'.format(song_name),'wb')as f:
            f.write(data_byts)


if __name__ == '__main__':
    htmls=get_data(shouyeurl)
    parse_data(htmls)

此代码仅为练习,并无其他目的

在进行网络爬虫练习时,选择合适的项目和资源是关键。以下是一些推荐的练习项目和学习资源,帮助您更好地掌握爬虫技术: ### 3.1 Scrapy框架练习项目 Scrapy 是一个强大的爬虫框架,适合进行较为复杂的爬虫项目。您可以从简单的网页抓取开始,例如抓取新闻网站的标题、链接和内容,逐步扩展到更复杂的项目,如抓取电商网站的商品信息、评论等。以下是一个使用 Scrapy 的基础示例代码,展示如何抓取网页中的新闻标题: ```python import scrapy from ..items import PachongItem class PcSpider(scrapy.Spider): name = "pc" allowed_domains = ["guba.eastmoney.com"] start_urls = ["https://guba.eastmoney.com"] def parse(self, response): item = PachongItem() li_list = response.xpath("//*[@id='mainlist']/div/div/div[3]/ul/li[1]/div/ul/li") for li in li_list: item["name"] = li.xpath("./div/div/div[1]/a/text()").get() yield item ``` ### 3.2 Python爬虫入门教程 对于初学者来说,Python 是一个非常适合入门爬虫的语言。有许多优秀的教程可以帮助您快速上手。您可以从简单的请求和解析开始,学习如何使用 `requests` 和 `BeautifulSoup` 库进行网页抓取。随着技能的提升,可以尝试更高级的主题,如处理 JavaScript 渲染的页面、使用代理和处理 cookies 等。 ### 3.3 防爬虫机制的应对 在实际的爬虫项目中,经常会遇到各种防爬虫机制,如图片验证码、滑块验证、封禁 IP 等。了解这些机制并学习如何应对是非常重要的。可以通过使用代理 IP、设置请求头、模拟浏览器行为等方式来绕过这些限制。 ### 3.4 爬虫练习资源推荐 - **Scrapy官方文档**:提供了详细的使用指南和示例,非常适合初学者。 - **BeautifulSoup教程**:介绍了如何使用 BeautifulSoup 解析 HTML 和 XML 文档。 - **Requests库文档**:详细介绍了如何使用 Requests 发起 HTTP 请求。 - **知乎上的爬虫相关话题**:有很多实战经验和技巧分享。 - **GitHub上的开源项目**:可以找到很多实际的爬虫项目,供学习和参考。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值