[英]How to find a substring in a string - by specifying the beginning and end of it?
我想從網站上獲取一些數據。
我的程序當前使用urllib.request讀取整個html文檔。 由於網站發生變化,因此每次我運行該程序時HTML文件的數據都不同。
一些數據保持不變-<腳本>的起點和終點。
我想告訴python子串的開始和結束應該是什么。
我已經用谷歌搜索過,但是只找到了一種方法,要求您事先知道子字符串才能查找它-例如:
str1.find(str2)
這是我的程序的一個片段:
import urllib.request
def get_html():
with urllib.request.urlopen("http://website.com/dynamic_page") as response:
html = response.read()
return html
print(get_html())
這會打印一個長字符串,但我只需要獲取其中的一部分,否則我的其他函數將在整個文檔中尋找字符串,而不僅僅是一小部分:
def search_custom(string):
html = get_html()
string_var = string
string_var = string_var.encode('utf-8')
string_count = html.count(string_var)
print(string_count)
return string_count
您可以使用類似:
start = str1.find("<script>")
if start > -1:
end = str1[start:].find("</script>")
if end > -1:
data = str1[start + 8:start + end]
您的頁面數據發生了變化,但是結構將保持不變。 為什么不使用BeautifulSoup並抓取特定的div / script標簽?
一個例子
from bs4 import BeautifulSoup
soup = BeautifulSoup(page)
message = soup.find("script")
這將為您提供第一個腳本標簽。 您可能不需要第一個標簽。 還有許多其他方式可以抓取。 您可以查看文檔 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.