python - 从 for 循环附加列表
问题描述
我正在尝试使用从网页收集的链接填充列表。该列表出现了意想不到的结果。我使用的代码有什么问题?
def get_contact_id(self):
wd = self.app.wd
elements = wd.find_elements_by_xpath("//a[contains(@href, 'edit.php?id')]")
print(elements)
links = []
for i in elements:
link = i.get_attribute('href')
links.append(link)
print(links)
我希望得到:
links = ['//192.168.1.22:8080/addressbook/edit.php?id=9','//192.168.1.22:8080/addressbook/edit.php?id=11','//192.168.1.22:8080/addressbook/edit.php?id=13','//192.168.1.22:8080/addressbook/edit.php?id=10','//192.168.1.22:8080/addressbook/edit.php?id=14']
相反,我得到:
links = ['//192.168.1.22:8080/addressbook/edit.php?id=9']
['//192.168.1.22:8080/addressbook/edit.php?id=9','//192.168.1.22:8080/addressbook/edit.php?id=10']
['//192.168.1.22:8080/addressbook/edit.php?id=9', '//192.168.1.22:8080/addressbook/edit.php?id=10', '//192.168.1.22:8080/addressbook/edit.php?id=11']
['//192.168.1.22:8080/addressbook/edit.php?id=9', '//192.168.1.22:8080/addressbook/edit.php?id=10', '//192.168.1.22:8080/addressbook/edit.php?id=11', '//192.168.1.22:8080/addressbook/edit.php?id=13']
['//192.168.1.22:8080/addressbook/edit.php?id=9', '//192.168.1.22:8080/addressbook/edit.php?id=10', '//192.168.1.22:8080/addressbook/edit.php?id=11', '//192.168.1.22:8080/addressbook/edit.php?id=13', '//192.168.1.22:8080/addressbook/edit.php?id=14']
解决方案
您需要links
在 for 循环之外打印。
def get_contact_id(self):
wd = self.app.wd
elements = wd.find_elements_by_xpath("//a[contains(@href, 'edit.php?id')]")
print(elements)
links = []
for i in elements:
link = i.get_attribute('href')
links.append(link)
print(links)
推荐阅读
- python - 重定向管理页面的 Django logged_out.html 页面问题
- r - 如何计算一组不同矩阵和一个矩阵之间的差异
- ruby-on-rails - 如何使这个 Rails 应用程序多线程?
- r - 将数据分散到新列中,同时汇总(添加)值 - R 或 SQL
- c++ - 成员变量中的类模板参数推导
- nativescript - 在我的手机中找不到 nativescript 演示应用程序文件夹路径
- python - 为发生创建一个二进制列
- c# - 无法看到已发布的 ASP.NET 站点的代码更改
- android - android finish() 没有完成我的活动
- csv - BizTalk 平面文件/CSV 架构