You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python处理含阿塞拜疆字母的链接异常 爬虫问题求助

解决URL中包含阿塞拜疆字母时的拆分异常问题

你遇到的问题根源在于非ASCII字符没有正确进行URL编码——Python直接拼接包含特殊字符的字符串到URL时,会出现编码异常,进而产生意外的空格或链接拆分。阿塞拜疆字母(比如ə)属于非ASCII字符,必须转换为URL兼容的百分号编码格式才能被服务器正确识别。

解决方案:用urllib.parse做标准URL编码

Python内置的urllib.parse模块提供了专门的URL编码工具,推荐使用quote_plus()方法——它既能把空格替换为URL标准的+符号,又会自动对非ASCII字符做百分号编码,完美解决你的问题。

修改后的完整代码

import requests
from bs4 import BeautifulSoup as bs
from urllib.parse import quote_plus  # 新增编码工具导入

URL = 'http://marja.az/search?q='
# 建议用原始关键词(带空格),后续由工具自动转换格式
KEYWORDS = [ 'Vali Vəli' ]

for key in KEYWORDS:
    # 对关键词做标准URL编码,确保特殊字符被正确处理
    encoded_key = quote_plus(key)
    search_url = URL + encoded_key
    print(search_url)  # 输出应为 http://marja.az/search?q=Vali+%C9%99li
    
    r = requests.get(search_url)
    soup = bs(r.content, "lxml")
    for data in soup.find_all("div", {"class": "searchNews"}):
        for a in data.find_all("a"):
            href = a.get("href")
            link = "http://marja.az/" + href
            print(link)
            r1 = requests.get(link)
            soup1 = bs(r1.content, "lxml")
            
            # 新闻标题
            header = soup1.find("h1", attrs={"class": "title"}).text
            print(header)
            
            # 新闻内容
            paragraph = soup1.find("div", attrs={"class": "text"}).findAll('p', text=True, recursive=False)
            for p in paragraph:
                print(p.text)
            
            # 发布日期(增加空值判断避免报错)
            date_elem = soup1.find('div', {'style': 'color: #af0000; margin:10px 0px 10px 0px; font-size:12px; font-weight:bold; text-align:left;'})
            if date_elem:
                date = date_elem.text.split(",")[0].split(" ")
                date = date[0] + "-" + date[1] + "-" + date[2]
                print(date)

关键细节说明

  1. 编码逻辑:quote_plus('Vali Vəli')会把ə转换为%C9%99,空格转换为+,最终得到Vali+%C9%99li,拼接后的URL完全符合HTTP标准,不会再出现拆分或空格问题。
  2. 额外优化:我给日期元素增加了空值判断,避免页面结构变化时触发AttributeError,让代码更健壮。

内容的提问来源于stack exchange,提问作者Vali Valizada

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 23:42:36