吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4493|回复: 12
收起左侧

[Python 转载] 第一次写爬虫,爬取了全国各地的fm电台

[复制链接]
我_落_泪_、情绪 发表于 2020-3-11 19:10
本帖最后由 我_落_泪_、情绪 于 2020-3-11 20:03 编辑

!!!不是fm电台,只是爬取的文本频道号,我们上课要用,不要误解了,不好意思!!!
爬取网站  http://www.radio366.com/
近期在上关于无线搜索的课,因为要查找本地的fm频道,发现了这个网站,但是要先选择地址,再打开频道,才能看到具体的fm频道。一个一个弄十分麻烦,因此写了一个爬虫来爬取,该网站应该没有反爬机制。适合新手练手。
贴上代码

[Python] 纯文本查看 复制代码
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# [url=home.php?mod=space&uid=238618]@Time[/url]    : 2020/3/11 14:49
# [url=home.php?mod=space&uid=686208]@AuThor[/url]  : Ft
# [url=home.php?mod=space&uid=406162]@site[/url]    :
# [url=home.php?mod=space&uid=267492]@file[/url]    : fm.py
# @Software: PyCharm
#---------------------
import requests
from lxml import etree
import re
txtName = "codingWord.txt"
f=open(txtName, "a+")
headers={"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36"}
url2="http://www.radio366.com/"
html2=requests.get(url2,headers=headers)
html2.encoding = 'gb2312'
page2 = etree.HTML(html2.text)
shengfen=page2.xpath("//*[@id='sheng']/ul//a")
for city in shengfen:
    js=re.search(r'=.*',city.attrib['href'])
    print(city.text)
    shengs=js.group()[1::]
    url="http://www.radio366.com/xx.asp?sheng="+shengs
    html=requests.get(url,headers=headers)
    html.encoding = 'gb2312'
    page = etree.HTML(html.text)
    result = etree.tostring(page, encoding="gb2312", pretty_print=True, method="html").decode('gb2312')
    diantai=page.xpath('//body/div[@class="content"]/ul//a/@href')
    name=page.xpath('//body/div[@class="content"]/ul//a/text()')
    number=len(name)
    for i in range(0,number):
        xpage="http://www.radio366.com/"+diantai[i]
        html1 = requests.get(xpage, headers=headers)
        html1.encoding = 'gb2312'
        page1 = etree.HTML(html1.text)
        result1 = etree.tostring(page1, encoding="gb2312", pretty_print=True, method="html").decode('gb2312')
        fm=page1.xpath('//div[@id="plbottom"]/text()')
        dian=re.search(r'FM\d{1,3}.\d',fm[0])
        if(dian==None) and len(fm)>1:
            dian = re.search(r'FM\d{1,3}.\d', fm[1])
            if (dian == None):
                dian = re.search(r'调频\d{1,3}.\d', fm[1])
        if(dian==None):
            dian=re.search(r'调频\d{1,3}.\d',fm[0])
        if (dian != None):
            print(name[i])
            print(dian.group())





QQ图片20200311190920.png 爬下来的内容提交附件了
image.png

fm频道 .txt

25.38 KB, 下载次数: 36, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 2吾爱币 +2 热心值 +1 收起 理由
舟兜岷 + 1 热心回复!
zzl888 + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

头像被屏蔽
kfli 发表于 2020-3-11 19:22
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 我_落_泪_、情绪 发表于 2020-3-11 20:01
dunniu 发表于 2020-3-11 19:49
根本没有收听地址,就个列表啊!

我这个就爬的频道号,不好意思,好像有点误解了。。
hyoulin68 发表于 2020-3-11 19:20
dunniu 发表于 2020-3-11 19:49
根本没有收听地址,就个列表啊!

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
我_落_泪_、情绪 + 1 + 1 谢谢@Thanks!

查看全部评分

judgecx 发表于 2020-3-11 19:55
楼主能写个 采集url的嘛 不会写
 楼主| 我_落_泪_、情绪 发表于 2020-3-11 20:00
搞错了,我只是爬了一下各个地区频道的频道号,没有音频。不要误下了。。。
 楼主| 我_落_泪_、情绪 发表于 2020-3-11 20:03
judgecx 发表于 2020-3-11 19:55
楼主能写个 采集url的嘛 不会写

我会的不多,可以试一下
MOEYU_VANILLA 发表于 2020-3-11 20:09
支持支持
百思的姐 发表于 2020-3-11 20:11
爬虫写的好 牢饭能吃饱
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 07:26

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表