鱼C论坛

 找回密码
 立即注册
查看: 597|回复: 3

[已解决]麻烦帮忙看下我这re模块抓取的东西 为什么没有显示

[复制链接]
发表于 2018-8-14 23:34:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import time
import re
import pymongo
from lxml import etree
import requests


headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36"}

def get_url_muisc(url):
    html=requests.get(url,headers=headers)
    selector=etree.HTML(html.text)
    muisc_hrefs=selector.xpath('//div[@class="p12"]/@href')
    for muisc_href in muisc_hrefs:
        get_muisc_info(muisc_href)

def get_muisc_info(url):
    html=requests.get(url,headers=headers)
    selector=etree.HTML(html.text)
    name=selector.xpath('//*[@id="wrapper"]/h1/span/text()')[0]
    author = re.findall('<span class="pl">"表演者":.*?>(.*?)</a>', html.text, re.S)
    styles = re.findall('<span class="pl">流派:</span>"&nbsp;(.*?)"<br>', html.text, re.S)
    if len(styles) == 0:
        style = '未知'
    else:
        style = styles[0].strip()
    time = re.findall('<span class="pl">发行时间:</span>"&nbsp;(.*?)"<br>', html.text, re.S)
    publishers = re.findall('<span class="pl">出版者:</span>"&nbsp;(.*?)"<br>', html.text, re.S)

    if len(publishers) == 0:
        publishers = '未知'
    else:
        publishers = publishers[0].strip()
    score=selector.xpath('//*[@id="interest_sectl"]/div/div[2]/strong/text()')[0]
    #print(name,author,time,publishers,score)
    info={
        'name':name,
        'author':author,
        'styles':styles,
        'time':time,
        'publishers':publishers,
        'score':score
    }
    print(info)
if __name__=='__main__':
    urls=['https://music.douban.com/top250?start={}'.format(str(i)) for i in range(0,250,25)]
    for url in urls:
        get_url_muisc(url)
        time.sleep(2)

麻烦同学看下  我这中间 抓取的匹配方法 有什么问题??谢谢了
最佳答案
2018-8-15 11:40:46
slhlde 发表于 2018-8-15 09:29
我打开 MongoDB 里面什么都么有  这个就是因为正则表达式的原因???

你得到页面数据后,print出来,然后复制到正则工具,用你的表达式去匹配,看是否能匹配出来,能则表示你的表达式没有问题,不能则要修正表达式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-15 01:48:09 | 显示全部楼层
没有显示证明你的正则表达式有问题。建议获取页面数据后,用正则工具检验你的表达式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-15 09:29:27 | 显示全部楼层
凌九霄 发表于 2018-8-15 01:48
没有显示证明你的正则表达式有问题。建议获取页面数据后,用正则工具检验你的表达式

我打开 MongoDB 里面什么都么有  这个就是因为正则表达式的原因???
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-15 11:40:46 | 显示全部楼层    本楼为最佳答案   
slhlde 发表于 2018-8-15 09:29
我打开 MongoDB 里面什么都么有  这个就是因为正则表达式的原因???

你得到页面数据后,print出来,然后复制到正则工具,用你的表达式去匹配,看是否能匹配出来,能则表示你的表达式没有问题,不能则要修正表达式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 23:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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