Загрузка содержимого веб-страницы

Я хочу написать программу на python для загрузки содержимого веб-страницы, а затем загрузить содержимое веб-страниц, на которые ссылается первая страница.

Например, это главная веб-страница http://www.adobe.com/support/security/ и страницы, которые я хочу загрузить: http://www.adobe.com/support/security/bulletins/apsb13-23.html и http://www.adobe.com/support/security/bulletins/apsb13-22.html

Есть определенное условие, которое я хочу выполнить: он должен загружать только веб-страницы в бюллетенях, а не в рекомендациях ( http://www.adobe.com/support/security/advisories/apsa13-02.html).

 #!/usr/bin/env python
 import urllib
 import re
 import sys
 page = urllib.urlopen("http://www.adobe.com/support/security/")
 page = page.read()
 fileHandle = open('content', 'w')
 links = re.findall(r"<a.*?\s*href=\"(.*?)\".*?>(.*?)</a>", page)
 for link in links:
 sys.stdout = fileHandle
 print ('%s' % (link[0]))
 sys.stdout = sys.__stdout__
 fileHandle.close() 
 os.system("grep -i '\/support\/security\/bulletins\/' content >> content1") 

Я уже извлек ссылку на бюллетени в content1, но не знаю, как загрузить содержимое этих веб-страниц, предоставив content1 в качестве входных данных.

Файл content1 показан ниже:- /support/security/bulletins/apsb13-23.html /support/security/bulletins/apsb13-23.html /support/security/bulletins/apsb13-22.html /support/security/bulletins/apsb13-22.html /support/security/bulletins/apsb13-21.html /support/security/bulletins/apsb13-21.html /support/security/bulletins/apsb13-22.html /support/security/bulletins/apsb13-22.html /support/security/bulletins/apsb13-15.html /support/security/bulletins/apsb13-15.html /support/security/bulletins/apsb13-07.html

2 ответа

Решение

Если я понял ваш вопрос, следующий скрипт должен быть тем, что вы хотите:

#!/usr/bin/env python

import urllib
import re
import sys
import os
page = urllib.urlopen("http://www.adobe.com/support/security/")
page = page.read()
fileHandle = open('content', 'w')
links = re.findall(r"<a.*?\s*href=\"(.*?)\".*?>(.*?)</a>", page)
for link in links:
    sys.stdout = fileHandle
    print ('%s' % (link[0]))
sys.stdout = sys.__stdout__
fileHandle.close() 
os.system("grep -i '\/support\/security\/bulletins\/' content 2>/dev/null | head -n 3 | uniq | sed -e 's/^/http:\/\/www.adobe.com/g' > content1")
os.system("wget -i content1")

Возможно, этот вопрос относится к stackoverflow!

Но в любом случае вы можете посмотреть в HTTrack, что он выполняет аналогичные операции и, кроме того, его с открытым исходным кодом

Другие вопросы по тегам