Python 3从HTTPrequest响应获取一些字符串

2024-05-19 02:28:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我很难从httprequest响应中提取数据。

有人能帮我吗?以下是我的代码:

import requests

r = requests.get('https://www.example.com', verify=True)
keyword = r.text.find('loginfield')
print (keyword)

>>> 42136

42136值基本上表示response.text上存在字符串“loginfield”。但是如何从中提取特定字符串呢?

例如,我想提取这些字符串:

<title>Some title here</title>

或者这个:

<div id='bla...' #continues extracting of strings until it stops where I want it to stop extracting.

有人知道我该如何处理这个问题吗?


Tags: 数据字符串代码texthttpsimportgettitle
2条回答

您可以使用^{}解析HTML并获取标记。下面是一段代码示例:

import requests
from bs4 import BeautifulSoup as BS
r = requests.get('https://www.example.com', verify=True)
soup = BS(r.text)
print(soup.find('title').text)

应打印:

Some title here

但要看是不是第一个头衔

请注意,对于HTML页面数据提取,您应该查看像Beautiful soup这样的专用库。这样你的程序就不会那么脆弱,更容易维护。


如果字符串不存在,则^{}将返回-1

您检索到的页面中没有字符串“loginfield”。


一旦字符串有了正确的索引,返回的值就是该字符串的第一个字符的位置。

既然你编辑了你的问题:

>>> r.text.find('loginfield') 
42136

也就是说,字符串“loginfield”从文本中的偏移42136开始。你可以从那个位置开始显示200个字符:

>>> print(r.text[42136:42136+200])

要找到您要查找的各种值,您必须找出相对于该位置的位置。

相关问题 更多 >

    热门问题