【发布时间】:2015-11-13 12:12:31
【问题描述】:
我写了一段代码来抓取一个网页,该网页实际上可以通过一个 url 使用它,但是一旦我在 .txt 中输入超过 2 个 url,就会告诉我“分段错误”。我不知道问题出在哪里。任何帮助将不胜感激。
import sys
import time
import gc
from bs4 import BeautifulSoup
from PyQt4.QtGui import *
from PyQt4.QtCore import *
from PyQt4.QtWebKit import *
class Render(QWebPage):
def __init__(self, url):
self.app = QApplication(sys.argv)
QWebPage.__init__(self)
self.loadFinished.connect(self._loadFinished)
self.mainFrame().load(QUrl(url))
self.app.exec_()
def _loadFinished(self, result):
self.frame = self.mainFrame()
#self.deleteLater()
self.app.quit()
with open('/blah/blah/blah/blah/blah.txt') as f:
urls = f.read().splitlines()
for i in urls:
r = Render(i)
soup = BeautifulSoup(unicode(r.frame.toHtml()))
summary = soup.find('div',{'style' : 'padding-top:10px;'})
tables = summary.find('tbody')
count = 0
print
for row in tables.findAll('tr'):
for cell in row.findAll('td'):
data = cell.getText()
if (count < 15):
data = data + ';'
print data,
count += 1
if (count==16):
print data
count = 0
嗯,这就是代码。在它告诉我分段错误之前,我得到了 2 次 with 循环迭代...... :( 换句话说,我可以从 txt 的 6 个 url 中抓取 2 个。
提前感谢您的帮助
【问题讨论】:
-
确切的错误是什么。
-
在 .txt 文件中有 6 个我想抓取的 url。运行代码时,它需要第一个,给我输出。拿第二个,给我输出,然后说'Segmentation Fault'。不明白为什么...
-
Segmentation Fault 究竟是如何呈现的?
-
如果你只做第三个 URL 你会犯错吗?
-
Url 是这样的:simplesoccerstats.com/stats/…我在 python 2.7 上,在 Kali Linux 上。
标签: python segmentation-fault beautifulsoup qt4 scrape