请问用python爬虫抓取此网站的有关信息正则表达式和beautifulsoup怎么写?

Python019

请问用python爬虫抓取此网站的有关信息正则表达式和beautifulsoup怎么写?,第1张

代码如下:

#coding=utf-8

import re

import requests

from bs4 import BeautifulSoup

resp = requests.get('http://bbs.tiexue.net/post_4337054_1.html')

if resp.status_code == 200:

    soup = BeautifulSoup(resp.content.decode('GB2312'), 'xml')

    

    content = soup.find('div', id = 'postContent')

    items = content.find_all('p', attrs = {'class': 'bbsp'})

    

    regex = re.compile(r'\d*(.*?)\s*((?:\d+°\s?)?(?:\d+\'\s?)?(?:\d+\.\d+\"\s?)?N)\s*((?:\d+°\s?)?(?:\d+\'\s?)?(?:\d+\.\d+\"\s?)?[WE])')

    for item in items:

        line = item.text.strip()

        if line != '':

            match = regex.match(line)

            if match:

                groups = match.groups()

                print('名称:', groups[0])

                print('北纬:', groups[1])

                print('东经:', groups[2])

                print('----------------------------------------')

运行结果

可以使用Python的regex模块并re.sub()替换要摆脱的任何字符。

您既可以使用黑名单替换所有不需要的字符,也可以对所有希望允许的字符使用白名单,仅保留这些字符。

在python中,所谓的“正则表达式”指的是通常被用来检索、替换那些符合某个模式的一段文本。具体而言,它的作用是检测某个字符串是否符合规则和提取网页字符串中想要的数据。

import rec='sdsdaherf=sadasdada sdad123,21312!!!' pattern=re.compile('herf=(.*)') pattern.findall(c) a=re.findall('herf=(.*)', c) a 结果就是 Out[9]: ['sadasdada sdad123,21312!!!']