Python爬取APKMirror表格元素链接问题求助
解决APKMirror搜索结果链接提取问题
你的代码仅输出“all done”是因为选择器错误,未定位到正确的链接元素。结合截图里的搜索结果表格,以下是修正方案:
问题分析
原代码中soup.find_all("div", {'class': 'accent_color'})的选择器不符合APKMirror页面的实际结构,搜索结果里的应用链接并不在这个类的div中,导致找不到任何目标元素。
修正后的代码
import requests from bs4 import BeautifulSoup USER_AGENT = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0'} line = "football" def search(): # 修正URL中的HTML实体编码,使用&代替& apk_mirror_url = f'https://www.apkmirror.com/?post_type=app_release&searchtype=apk&s={line}' response = requests.get(apk_mirror_url, headers=USER_AGENT) # 检查请求是否成功 if response.status_code != 200: print(f"请求失败,状态码: {response.status_code}") return soup = BeautifulSoup(response.text, 'html.parser') # 定位搜索结果表格中的应用行,提取对应链接 for app_row in soup.find_all("div", class_="appRow"): app_link = app_row.find("a", class_="fontBlack") if app_link: # 拼接完整URL,原href为相对路径 full_url = f"https://www.apkmirror.com{app_link.get('href')}" print(full_url) print("all done!") search()
关键修改说明
- 修正URL:将原URL中的
&替换为&,避免URL解析错误导致请求页面不符合预期 - 增加请求校验:添加状态码检查,快速排查请求失败的问题
- 调整选择器:使用
div.appRow定位搜索结果的每一行,再通过a.fontBlack获取应用的链接元素,这是APKMirror搜索结果的正确结构 - 拼接完整URL:页面中的链接是相对路径,需要拼接域名得到完整可访问的URL
内容的提问来源于stack exchange,提问作者wqrtyhrtrplgdfasdas
相关产品推荐
相关产品推荐

