文件请求中的Python URL

时间:2015-05-13 11:10:49

标签: python python-requests

我的Python脚本存在问题,我想从每个网站上抓取相同的内容。我有一个包含大量URL的文件,我希望Python通过它们将它们放入requests.get(url)对象中。之后,我将输出写入名为'somefile.txt'的文件。

我必须使用以下Python脚本(版本2.7 - Windows 8):

from lxml import html
import requests

urls = ('URL1',
'URL2',
'URL3'
    )

for url in urls:
    page = requests.get(url)


tree = html.fromstring(page.text)

visitors = tree.xpath('//b["no-visitors"]/text()')

print 'Visitors: ', visitors

f = open('somefile.txt', 'a')
    print >> f, 'Visitors:', visitors  # or f.write('...\n')
    f.close() 

如您所见,是否未在脚本中包含带有URL的文件。我尝试了很多教程,但都失败了。文件名为'urllist.txt'。在当前脚本中,我只从URL3获取数据 - 在理想情况下,我想从urllist.txt获取所有数据。

尝试阅读文本文件:

with open('urllist.txt', 'r') as f: #text file containing the URLS
     for url in f:
     page = requests.get(url)

2 个答案:

答案 0 :(得分:0)

您需要从行中删除换行符:

    public class Language
{
    public MainForm mainform;
    public ucAnimalInfo animalinfo;
    public ucAnimalInput animalinput;
    public ucSettings settings;


    public void setLanguage()
    {
        mainform.Animal_Info_Tab.Info_Id_Text.Text = mainform.Settings_Tab.rs.GetString("Info_Save_Btn", mainform.Settings_Tab.ci);

    }

with open('urllist.txt', 'r') as f: #text file containing the URLS for url in f: page = requests.get(url.strip()) 调用会从行中删除所有空格(包括制表符和换行符以及回车符)。

请确保您在循环中处理str.strip() ;如果您运行代码以在循环外提取数据,那么您将获得的是您加载的最后一个响应的数据。您也可以在page语句中打开输出文件一次,以便Python再次关闭它:

with

答案 1 :(得分:0)

您应该将每个页面保存在单独的变量中,或者在URL列表的循环中执行所有计算。

根据您的代码,当您的页面解析发生时,它将只包含最后一页获取的数据,因为您在每次迭代中覆盖了page变量。

以下内容应附加所有页面'资讯

for url in urls:
    page = requests.get(url)


    tree = html.fromstring(page.text)

    visitors = tree.xpath('//b["no-visitors"]/text()')

    print 'Visitors: ', visitors

    f = open('somefile.txt', 'a')
        print >> f, 'Visitors:', visitors  # or f.write('...\n')
        f.close()