当我尝试去掉“?”后面的所有内容时出现错误在一组抓取的链接中:
代码:
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)
关于python - 删除 "?"python 之后的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45306676/