当我尝试去掉“?”后面的所有内容时出现错误在一组抓取的链接中:
代码:
from selenium import webdriver
import pandas as pd
import time
from datetime import datetime
from collections import OrderedDict
import re
browser = webdriver.Firefox()
browser.get('https://www.kickstarter.com/discover?ref=nav')
categories = browser.find_elements_by_class_name('category-container')
category_links = []
for category_link in categories:
category_links.append((str('https://www.kickstarter.com'),
category_link.find_element_by_class_name('bg-white').get_attribute('href')))
print(category_links)
for i in category_link:
category_links2 = re.sub('?$', '', category_links)
print(category_links2)
错误:
TypeError: 'FirefoxWebElement' object is not iterable
请您参考如下方法:
您需要遍历
category_links。i是循环变量您需要在
i上应用re.sub,而不是category_links,因为后者是一个列表,而re.sub不适用于列表。对于像这样的简单任务,我建议使用
str.split在?上拆分:
for i in category_links:
category_links2 = i[1].split('?')[-1]
print(category_links2)
