傲视群熊¥ 发表于 2021-5-22 01:19:45

关于正则表达式的问题

本帖最后由 傲视群熊¥ 于 2021-5-22 14:24 编辑

def find_data(res):
    data = []
    soup = bs4.BeautifulSoup(res.text, "html.parser")
    content = soup.find(id="Cnt-Main-Article-QQ")
    target = iter(content.find_all("p", style="TEXT-INDENT: 2em"))
    for each in target:
      if each.text.isnumeric():
            data.append([
                re.search(r'\[(.+)\]', next(target).text).group(1),
                re.search(r'\d.*', next(target).text).group(),
                re.search(r'\d.*', next(target).text).group(),
                re.search(r'\d.*', next(target).text).group()
                ])

    return data
以上的代码是鱼哥在爬取2017 年中国主要城市房价工资比排行榜的时候写的。想请教大佬为啥”re.search(r'\[(.+)\]', next(target).text).group(1)“中既用了r,又用了\。r不是已经将后面的字符串转为原生zi'fu

笨鸟学飞 发表于 2021-5-22 09:38:12

把待爬取的信息源码发上来,对照待爬取的信息看才能看出为什么,你这样没法给你解答,总不能又返回去看视频吧?

kogawananari 发表于 2021-5-22 09:50:31

正则前面就得加r   比如你匹配小数点 得用 r'\.'

傲视群熊¥ 发表于 2021-5-22 11:52:16

笨鸟学飞 发表于 2021-5-22 09:38
把待爬取的信息源码发上来,对照待爬取的信息看才能看出为什么,你这样没法给你解答,总不能又返回去看视频 ...

就类似这些
页: [1]
查看完整版本: 关于正则表达式的问题