[英]Reading url from file Python
無法讀取txt文件中的url,我想一一讀取並打開txt中的url地址,並且我想從url地址的來源中獲取帶有regex的標題的標題錯誤消息:
追溯(最近一次通話最近):UrlsOpen中的文件“ Mypy.py”,第14行= urllib2.urlopen(listSplit),URLopen中的文件“ /usr/lib/python2.7/urllib2.py”,第154行,返回打開程序.open(URL,數據,超時)文件“ /usr/lib/python2.7/urllib2.py”,行420,在open req.timeout =超時中AttributeError:'list'對象沒有屬性'timeout'
Mypy.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import re
import requests
import urllib2
import threading
UrlListFile = open("Url.txt","r")
UrlListRead = UrlListFile.read()
UrlListFile.close()
listSplit = UrlListRead.split('\r\n')
UrlsOpen = urllib2.urlopen(listSplit)
ReadSource = UrlsOpen.read().decode('utf-8')
regex = '<title.*?>(.+?)</title>'
comp = re.compile(regex)
links = re.findall(comp,ReadSource)
for i in links:
SaveDataFiles = open("SaveDataMyFile.txt","w")
SaveDataFiles.write(i)
SaveDataFiles.close()
當您調用urllib2.urlopen(listSplit)
listSplit是一個列表,當它需要為字符串或請求對象時 。 這是一個簡單的修復,可以遍歷listSplit而不是將整個列表傳遞給urlopen。
re.findall()
還將為搜索到的每個ReadSource返回一個列表。 您可以通過以下兩種方式處理此問題:
我選擇僅通過列出列表來處理它
websites = [ [link, link], [link], [link, link, link]
並遍歷兩個列表。 這樣一來,您就可以針對每個網站的網址列表執行特定的操作(放入不同的文件等)。
您還可以展平website
列表,使其僅包含鏈接,而不是包含鏈接的另一個列表:
links = [link, link, link, link]
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import re
import urllib2
from pprint import pprint
UrlListFile = open("Url.txt", "r")
UrlListRead = UrlListFile.read()
UrlListFile.close()
listSplit = UrlListRead.splitlines()
pprint(listSplit)
regex = '<title.*?>(.+?)</title>'
comp = re.compile(regex)
websites = []
for url in listSplit:
UrlsOpen = urllib2.urlopen(url)
ReadSource = UrlsOpen.read().decode('utf-8')
websites.append(re.findall(comp, ReadSource))
with open("SaveDataMyFile.txt", "w") as SaveDataFiles:
for website in websites:
for link in website:
pprint(link)
SaveDataFiles.write(link.encode('utf-8'))
SaveDataFiles.close()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.