【发布时间】:2015-05-09 15:38:51
【问题描述】:
我有两个变量,一个包含绝对 URL,另一个包含另一个部分的相对路径。首先,我尝试了一个简单的串联。
absolute_url = www.example.com
relative_url = /downloads/images
url = absolute_url + relative_url
当我打印 url 变量时,我有一个格式正确的 URL。但是当我尝试使用 requests 或 urllib2 来检索数据时,大约有一半的时间会抛出异常:'NoneType' object has no attribute 'getitem'
然后我研究并认为也许我应该使用 urllib.urlparse.urljoin() 来执行此操作,但我仍然收到错误。
但令我感兴趣的是,它有时有效,有时无效。关于这里发生了什么的任何想法?
编辑
下面是实际代码:
url = "http://www.hdwallpapers.in"
html = requests.get(url)
soup = BeautifulSoup(html.text)
categories = ("Nature", "Animals & Birds", "Beach", "Bikes", "Cars","Dreamy & Fantasy", "Others", "Travel & World")
random_category = random.randint(0, len(categories)) - 1
selected_category = categories[random_category]
selected_category_url = soup.find('a', text=selected_category)
category_page_url_join = urlparse.urljoin(url, selected_category_url['href'])
category_page_html = requests.get(category_page_url_join)
【问题讨论】:
-
显示一个出错的实际示例,包括您对 requests/urllib2 的使用。
标签: python web-scraping urllib