Как решить проблему медленной очистки PyQt4 веб-страниц, отображаемых на JavaScript - PullRequest
0 голосов
/ 22 мая 2019

У меня есть этот код для очистки статей (title и href) от поиска на веб-сайте, он использует javascript и, следовательно, обычный bs4 не будет работать.Я повернулся к использованию PyQt4, но слишком медленно.Что мне теперь делать

class Client(QWebPage):

    def __init__(self, url):
        self.app = QApplication(sys.argv)
        QWebPage.__init__(self)
        self.loadFinished.connect(self.on_page_load)
        self.mainFrame().load(QUrl(url))
        self.app.exec_()

    def on_page_load(self):
        self.app.quit()

word = "imran khan"
url = 'https://www.dawn.com/search?cx=partner-pub-8258178831251847%3A5337004877&cof=FORID%3A10&ie=UTF-8&q=' + "+".join(word.split(' '))
client_response = Client(url)
source = client_response.mainFrame().toHtml()
soup = bs.BeautifulSoup(source, 'lxml')
stories = {'title':[], 'link':[]}
for link in soup.find_all('a', class_='gs-title'):
    title = link.text
    try:
        href = link['href']
    except KeyError:
        href= ""
    stories['title'].append(title)
    stories['link'].append(href)

stories = pd.DataFrame(stories)
stories.to_csv('stories.csv')
...