如何使用python和lxml中的for循环从网站链接列表中检索页面内容?

时间:2019-04-29 23:59:59

标签: python python-3.x xpath lxml

我正在从一个网站上抓取数据,并且检索了一个URL列表,从这些URL中可以获取所需的最终数据。如何使用循环从该地址列表中检索html?

在lxml中使用xpath,我有一个URL列表。现在,我需要检索每个URL的页面内容,然后再次使用xpath从每个页面获取最终数据。如果使用的话,我可以从每个页面分别获取数据

pagecontent=requests.get(linklist[1])

然后我可以获取1个网址的内容,但是如果我使用for循环

for i in range(0,8):
    pagecontent[i]=requests.get(linklist[i])

我得到一个错误列表分配索引超出范围。我也尝试过使用

pagecontent=[requests.get(linklist) for s in linklist]

我看到的错误是没有找到'['http ...(链接列表)...]'的连接适配器

我正在尝试获取列表页面内容,其中列表中的每个项目都有相应URL的html。实现此目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

根据您的评论,我相信这(或类似的东西)可能就是您想要的;由于我没有您的linklist,因此我自己无法尝试,但是您应该能够修改代码以适合您的情况。它使用python f-strings来满足您的需求。

linklist = ['www.example_1.com','www.example_2.com','www.example_3.com']
pages = {} #initialize an empty dictionary to house your name/link entries

for i in range(len(linklist)):      
      pages[f'pagecontent[{i+1}]'] = linklist[i] #the '+1' is needed because python counts from 0...
for name, link in pages.items() :
    print (name, link)

输出:

pagecontent[1] www.example_1.com
pagecontent[2] www.example_2.com
pagecontent[3] www.example_3.com