如何编写文本文件的链接?

时间:2015-10-22 19:34:25

标签: python

我正在测试以下脚本:

import re
import requests
from bs4 import BeautifulSoup
import os
import fileinput

Link = 'https://en.wikipedia.org/wiki/Category:1990'
q = requests.get(Link)
soup = BeautifulSoup(q.text)
#print soup
subtitles = soup.findAll('div',{'class':'links'})
#print subtitles


with  open("Anilinks.txt", "w") as f:
    for link in subtitles:
        x = link.find_all('a', limit=26)
        for a in x:
            url = a['href']
            f.write(url+'\n')

我正在尝试将每个链接复制/粘贴到文本文件中。该脚本似乎应该可以工作,但它实际上并没有做任何事情。

有人能帮我搞定吗? 谢谢!

2 个答案:

答案 0 :(得分:1)

您可以将字符串写入文本文件,如下所示:

with open("yourfile.txt", "w") as f: f.write(yourstr)

如果您不想覆盖该文件,请使用" a"作为open中的第二个参数。请参阅https://docs.python.org/2/library/functions.html#open

所以,我假设你有一个这样的链接列表:

  

[" http://example.com"," http://stackoverflow.com"]

你想要一个像这样的文件:

http://example.com:
<!doctype html>
<html>
<body>
...
<h1>Example Domain</h1>
...
</body>
</html>

http://stackoverflow.com:
...

让我们开始迭代所有链接:

for url in yourlinks:

首先,您要将URL写入文件:

    with open("yourfile.txt", "a") as f:
        f.write(url+"\n") # the \n is a new line

现在您将网站内容下载到变量:

        content = urllib2.urlopen(url).read()

(由于编码可能会出现错误 - 我来自python3。) 然后你把它写到文件中:

        f.write(content+"\n")

瞧!你现在应该有你的文件。

答案 1 :(得分:0)

该页面上没有带有一类链接的div,因此//没有任何要迭代的项目。

for link in subtitles

在尝试循环结果之前,您正在以写入模式打开输出文件,因此您总是得到一个空文件。