用正则表达式获取链家网标签为<div='content_pg'>的代码
时间: 2024-04-01 12:34:10 浏览: 48
可以使用正则表达式和 requests 库来获取链家网标签为 `<div class="content_pg">` 的代码,代码示例如下:
```python
import re
import requests
url = 'https://jn.lianjia.com/zufang/'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)
html = response.text
pattern = re.compile(r'<div class="content_pg">.*?</div>', re.S)
result = pattern.findall(html)
print(result)
```
这里使用了正则表达式 `<div class="content_pg">.*?</div>`,其中 `.*?` 表示匹配任意字符,非贪婪模式,直到遇到 `</div>` 结束匹配。`re.S` 标志表示让 `.` 匹配任何字符,包括换行符。
相关问题
语言是javaScript 如何通过正则获取某个类名的div里的内容,比如获取<div class="signature><div>124</div><div>1212</div></div>里<div class="signature></div>里的代码。如一个字符串是“<div class="signature><div>124</div><div>1212</div></div>”这个,那我要获取的是这个字符串里的“<div>124</div><div>1212</div>”
你可以使用正则表达式结合JavaScript的`match()`方法来获取特定类名的`div`里的内容。以下是一个示例代码:
```javascript
const str = '<div class="signature"><div>124</div><div>1212</div></div>';
const className = 'signature';
// 构建正则表达式
const regex = new RegExp(`<div class="${className}">(.*?)<\/div>`, 'g');
// 使用 match 方法匹配正则表达式
const matches = str.match(regex);
// 打印匹配到的结果
console.log(matches);
```
在上述代码中,我们首先定义了一个字符串`str`,其中包含了你提供的示例字符串。然后,我们定义了一个变量`className`,用于存储目标类名。
接下来,我们使用`new RegExp()`构造函数创建了一个正则表达式,该表达式用于匹配特定类名的`div`标签及其内容。其中,`<div class="${className}">(.*?)<\/div>`表示匹配以`<div class="className">`开头、`<\/div>`结尾的部分,并捕获中间的内容。
最后,我们使用字符串的`match()`方法,传入上述正则表达式作为参数,来获取所有匹配的结果。这将返回一个数组,其中包含了所有符合条件的字符串。
在上述示例中,输出结果将是`["<div>124</div><div>1212</div>"]`,即包含目标类名的`div`标签及其内容的字符串。你可以根据自己的需求进一步处理这个结果。
如果通过正则获取某个类名的div里的内容,比如获取<div class="signature><div>124</div></div>里<div class="signature></div>里的代码
你可以使用正则表达式来提取特定类名的 `<div>` 标签内容。下面是一个示例代码:
```python
import re
html = '<div class="signature"><div>124</div></div>'
class_name = "signature"
pattern = fr'<div class="{class_name}".*?>(.*?)</div>'
result = re.search(pattern, html)
if result:
content = result.group(1)
print(content)
else:
print("未找到匹配的内容")
```
在上面的示例中,我们使用 `re.search()` 方法来查找符合指定类名的 `<div>` 标签。`pattern` 变量使用了 f-string 格式化字符串,以动态插入类名。然后,我们使用 `(.*?)` 来捕获 `<div>` 标签内的内容,并通过 `result.group(1)` 来获取捕获的内容。
注意,使用正则表达式来解析 HTML 并不是最佳的方法。更好的选择是使用 HTML 解析库,如 Beautiful Soup,可以更方便地处理和提取 HTML 内容。
阅读全文