我有以下代码需要从中获取绝对链接,而不是相对链接。
我相信我需要在这里的某个地方使用urlparse
和urljoin
,但是我不确定在哪里使用。
此代码中的.csv还给了我这样的行:"/about.html"
显然不是到另一个网页的链接。
import urllib
import pandas as pd
from bs4 import BeautifulSoup
import numpy as np
import re
r = urllib.urlopen('https://www.census.gov/programs-surveys/popest.html')
soup = BeautifulSoup(r, "lxml")
links = []
for link in soup.findAll('a', attrs={'href': re.compile(r'(^http|.html)')}):
links.append(link.get('href'))
web_links_df = pd.DataFrame(links)
web_links_df.columns = ['web_link']
web_links_df['web_link'] = web_links_df['web_link'].apply(lambda x:
x.rstrip('/'))
url_tail = web_links_df['web_link'].apply(lambda x: x[-4:])
web_links = pd.DataFrame(web_links_df['web_link'].unique())
web_links.columns = ['web_link']
print web_links.head()
web_links.to_csv("D:/MLCV/web_links_1.csv")
任何帮助将不胜感激。我花了几个小时来研究Stack上的其他示例,但我没有得到正确的结果。