簡體   English   中英

如何在字符串中查找子字符串-通過指定其開頭和結尾?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM