python-2.7 - 来自网页的python 2.7绝对链接
问题描述
我有以下代码,我需要从中获取绝对链接而不是相对链接。
我相信我需要在这里的某个地方使用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 上的其他示例,但我没有得到正确的结果。
解决方案
推荐阅读
- python - 从熊猫数据框中的json数组中提取数据
- javascript - 在反应中确保折叠到小屏幕上的卡片之间的空间
- html - CSS 文件未链接到 HTML 文件,路径和顺序似乎正确
- mysql - Docker-compose MySQL 链接失败
- javascript - 如何在反应中呈现矩阵表形式数组
- ruby-on-rails - 如何修复 ArgumentError - 表单中的第一个参数不能包含 nil 或为空:app/views/cars/new.html.erb:8
- android - 如何将额外数据与从 GoogleSignInClient.getSignInIntent() 获得的 Intent 一起传递?
- php - 如何将帖子标题作为值传递?
- javascript - 数据表的渲染功能添加额外的文本
- python - ERROR:gl_surface_egl.cc(668)] EGL Driver message (Error) eglQueryDeviceAttribEXT: Bad attribute error using ActionChains from Selenium Python