Skip to main content
 首页 » 编程设计

python之解析 URL beautifulsoup

2025年05月04日21artech

import requests 
import csv 
from bs4 import BeautifulSoup 
page = requests.get("https://www.google.com/search?q=cars") 
soup = BeautifulSoup(page.content, "lxml") 
import re 
links = soup.findAll("a") 
with open('aaa.csv', 'wb') as myfile: 
    for link in  soup.find_all("a",href=re.compile("(?<=/url\?q=)(htt.*://.*)")):  
        a = (re.split(":(?=http)",link["href"].replace("/url?q=",""))) 
        wr = csv.writer(myfile, quoting=csv.QUOTE_ALL) 
        wr.writerow(a) 

此代码的输出是我有一个 CSV 文件,其中保存了 28 个 URL,但这些 URL 不正确。例如,这是一个错误的 URL:-

http://www.imdb.com/title/tt0317219/&sa=U&ved=0ahUKEwjg5fahi7nVAhWdHsAKHSQaCekQFgg9MAk&usg=AFQjCNFu_Vg9v1oVhEtR-vKqCJsR2YGd2A

应该是:-

http://www.imdb.com/title/tt0317219/

如果每个 URL 包含 "&sa="

,我如何删除它的第二部分

因为 URL 的第二部分开始于:- "&sa=" 应该被删除,这样所有的 URL 都像第二个 URL 一样被保存。

我正在使用 python 2.7 和 Ubuntu 16.04。

请您参考如下方法:

如果每次 url 的冗余部分都以 & 开头,您可以对每个 url 应用 split():

url = 'http://www.imdb.com/title/tt0317219/&sa=U&ved=0ahUKEwjg5fahi7nVAhWdHsAKHSQaCekQFgg9MAk&usg=AFQjCNFu_Vg9v1oVhEtR-vKqCJsR2YGd2A' 
url = url.split('&')[0] 
print(url) 

输出:

http://www.imdb.com/title/tt0317219/