我很难从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.
有人知道我该如何处理这个问题?
答案 0 :(得分:2)
您可以使用BeautifulSoup
来解析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
但取决于它是否是第一个冠军
答案 1 :(得分:0)
请注意,对于HTML页面数据提取,您应该看一下像Beautiful soup这样的专业库。你的程序将不那么脆弱,而且更容易维护。
string.find
将返回 -1 。
没有字符串&#34; loginfield&#34;在您检索的页面中。
一旦你有了正确的字符串索引,返回的值就是该字符串的第一个字符的位置。
因为你编辑了你的问题:
>>> r.text.find('loginfield')
42136
这意味着,字符串&#34; loginfield&#34;从文本中的偏移42136开始。您可以通过以下方式显示200个字符:
>>> print(r.text[42136:42136+200])
要查找您要查找的各种值,您必须确定相对于该位置的位置。