Python 如何在web抓取时搜索特定的unicode字符串?

Python 如何在web抓取时搜索特定的unicode字符串?,python,web-scraping,beautifulsoup,non-ascii-characters,Python,Web Scraping,Beautifulsoup,Non Ascii Characters,我最近对Python上的web抓取很感兴趣,并在一些简单的示例中进行了此操作,但我不知道如何处理不遵循ASCII代码的其他语言。例如,在HTML文件中搜索特定字符串或使用这些字符串写入文件 from urllib.parse import urljoin import requests import bs4 website = 'http://book.iranseda.ir' book_url = 'http://book.iranseda.ir/DetailsAlbum/?VALID=TRU

我最近对Python上的web抓取很感兴趣,并在一些简单的示例中进行了此操作,但我不知道如何处理不遵循ASCII代码的其他语言。例如,在HTML文件中搜索特定字符串或使用这些字符串写入文件

from urllib.parse import urljoin
import requests
import bs4
website = 'http://book.iranseda.ir'
book_url = 'http://book.iranseda.ir/DetailsAlbum/?VALID=TRUE&g=209103'

soup1 = bs4.BeautifulSoup(requests.get(book_url).text, 'lxml')
match1 = soup1.find_all('a', class_='download-mp3')
for m in match1:
    m = m['href'].replace('q=10', 'q=9')
    url = urljoin(website, m)
    print(url)
    print()
book\u url
下查看此网站,每行都有不同的文本,但文本是波斯语的。 假设我需要考虑最后一行。 文本为“دایکلکت㶌”
如何在
  • 标记中搜索此字符串?

    您需要将编码从
    请求设置为UTF-8。看起来
    请求
    模块没有使用您想要的解码。如中所述,您可以告诉请求预期的编码

    from urllib.parse import urljoin
    import requests
    import bs4
    website = 'http://book.iranseda.ir'
    book_url = 'http://book.iranseda.ir/DetailsAlbum/?VALID=TRUE&g=209103'
    
    req = requests.get(book_url)
    req.encoding = 'UTF-8'
    soup1 = bs4.BeautifulSoup(req.text, 'lxml')
    match1 = soup1.find_all('a', class_='download-mp3')
    for m in match1:
        m = m['href'].replace('q=10', 'q=9')
        url = urljoin(website, m)
        print(url)
        print()
    
    这里唯一的变化是

    req = requests.get(book_url)
    req.encoding = 'UTF-8'
    soup1 = bs4.BeautifulSoup(req.text, 'lxml')
    

    您希望返回什么?您在代码中的何处尝试对波斯字符串进行匹配?代码正在使用Jack提到的特定编码工作。