用正则表达式爬取经纬度
时间: 2023-07-03 20:29:53 浏览: 55
可以使用正则表达式来匹配经纬度,如下所示:
```python
import re
text = "经度: 123.456, 纬度: 45.678"
pattern = r"经度:\s*(-?\d+\.\d+),\s*纬度:\s*(-?\d+\.\d+)"
match = re.search(pattern, text)
if match:
longitude = match.group(1)
latitude = match.group(2)
print("经度:", longitude)
print("纬度:", latitude)
else:
print("没有找到经纬度")
```
在上面的例子中,使用正则表达式`r"经度:\s*(-?\d+\.\d+),\s*纬度:\s*(-?\d+\.\d+)"`来匹配经度和纬度。其中,`\s*`表示匹配0个或多个空格,`-?`表示可选的负号,`\d+\.\d+`表示匹配至少一个数字和一个小数点。匹配结果通过`re.search`方法返回,如果匹配成功,我们就可以通过`match.group(1)`和`match.group(2)`获取经度和纬度的值。
相关问题
用正则表达式爬取图片
使用正则表达式爬取图片需要先获取网页源代码,然后通过正则表达式匹配出图片的URL地址。以下是一个简单的示例代码:
```python
import re
import requests
# 获取网页源代码
url = 'https://www.example.com'
response = requests.get(url)
html = response.text
# 使用正则表达式匹配图片URL
pattern = re.compile('<img.*?src="(.*?)".*?>')
img_urls = re.findall(pattern, html)
# 下载图片
for img_url in img_urls:
response = requests.get(img_url)
with open('image.jpg', 'wb') as f:
f.write(response.content)
```
需要注意的是,正则表达式的匹配规则需要根据具体的网页源代码进行调整。此外,还需要注意防止爬虫被网站封禁,可以设置请求头信息或者使用代理IP等方式来规避风险。
运用正则表达式爬取百度贴吧帖子
使用正则表达式爬取百度贴吧帖子是一种常见的方法。下面是一个简单的步骤:
1. 发送HTTP请求:首先,你需要发送一个HTTP请求到百度贴吧的网页,获取到网页的HTML源代码。
2. 解析HTML源代码:使用HTML解析库(如BeautifulSoup)解析HTML源代码,将其转换为可操作的数据结构,方便后续的正则表达式匹配。
3. 构建正则表达式:根据你想要提取的内容,构建相应的正则表达式。正则表达式是一种强大的模式匹配工具,可以用来匹配和提取特定格式的文本。
4. 进行匹配和提取:使用构建好的正则表达式对解析后的HTML源代码进行匹配和提取。你可以使用正则表达式的匹配函数(如re.findall())来获取匹配到的内容。
5. 处理提取到的数据:对于提取到的数据,你可以根据需要进行进一步的处理和清洗,例如去除HTML标签、过滤无用信息等。
6. 存储数据:最后,将处理后的数据存储到文件或数据库中,以便后续使用或分析。
阅读全文