37,719
社区成员
发帖
与我相关
我的任务
分享
#!/usr/bin/python
# -*- coding:utf-8 -*-
'''os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
user_agent = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0"
headers = {'User-Agent': user_agent}
start_urls = 'http://tieba.baidu.com/f/search/res?ie=utf-8'
kw = 'eng'
url = start_urls + kw
request=urllib.request.Request(url,headers=headers)
reponse=urllib.request.urlopen(request).read()
print(reponse)
'''
#!/usr/bin/env python
# -*- coding :gb2312 -*-
import urllib.request
import urllib.parse
import sys
from urllib.request import urlopen
from bs4 import BeautifulSoup
import time
import tiebaUI
class TieBa():
def __init__(self):
app = tiebaUI.QtWidgets.QApplication(sys.argv)
MainWindow = tiebaUI.QtWidgets.QMainWindow()
MainWindow.show()
self.ui = tiebaUI.Ui_MainWindow()
self.ui.setupUi(MainWindow)
self.ui.pushButton.clicked.connect(TieBa.start)
self.kw = "222"
self.kw2 = "333"
self.beginPage = endPage = 0
self.kw_url = "http://tieba.baidu.com/f?"
self.kw2_url = "http://tieba.baidu.com"
self.ui.textEdit.setText('不需要带“吧”字')
sys.exit(app.exec_())
def writeAl(self,all_nr_print):
# now = time.strftime("%Y%m%d%H%M%S", time.localtime(time.time()))
# now = time.strftime("%Y%m%d%H", time.localtime(time.time()))
# fname = (kw + "吧_" + kw2 + now + r".txt")
'''
fname = (self.kw + "吧_P" + str(self.beginPage) + "-P" + str(self.endPage) + "_" + self.kw2 + r".txt")
with open(fname, 'a') as f:
f.write(all_nr_print+"\n")
'''
def all_nr(self,full_url):
html = urlopen(full_url)
bsObj = BeautifulSoup(html, 'html.parser')
t1 = bsObj.find_all('a')
for t2 in t1:
t3 = str(t2.get('href'))
t31 = str(t2.get('title'))
if len(t3) == 13:
if self.kw2 in t31:
all_nr_print = t31 + " " + str(self.kw2_url) + str(t3)
print(all_nr_print)
self.writeAl(all_nr_print)
def tiebaSpider(self,kw_url, beginPage, endPage):
for page in range(beginPage, endPage + 1):
pn = (page - 1) * 50
full_url = kw_url + "&pn=" + str(pn)
#print("\n%s"% full_url)
self.all_nr(full_url)
# writeAl(full_url)
def start(self):
print('111')
self.kw = '222'
print(self.kw)
问题在这里,点击按钮之后能正常输出111,但是后面就自动退出了,这个令self.kw = 222也是用来测试的,其实是如下被注释的代码,想获取文本框内容然后赋值给kw。但是臣妾做不到啊,求大佬指教一下,自己真的解决不来了,只能来发帖了.....
# self.kw2 = ui.textEdit.toPlainText()
# self.beginPage = ui.textEdit_3.toPlainText()
# self.endPage = ui.textEdit_4.toPlainText()
# print('222')
# kw_key = urllib.parse.urlencode({"kw": self.kw})
# full_url = self.kw_url + kw_key
# self.tiebaSpider(full_url, self.beginPage, self.endPage)
#print(self.kw,self.kw2,self.beginPage,self.endPage)
'''
kw = input('请输入贴吧名:')
beginPage = int(input("请输入起始页:"))
endPage = int(input("请输入结束页:"))
kw2 = input('请输入帖子主题的\"关键词\":')
kw_url = "http://tieba.baidu.com/f?"
kw2_url = "http://tieba.baidu.com"
kw_key = urllib.parse.urlencode({"kw": kw})
full_url = kw_url + kw_key
tiebaSpider(full_url, beginPage, endPage)
'''
if __name__ == '__main__':
TieBa()
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'tiebaUI.ui'
#
# Created by: PyQt5 UI code generator 5.11.3
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QHeaderView
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(1000, 450)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
MainWindow.setSizePolicy(sizePolicy)
MainWindow.setMinimumSize(QtCore.QSize(1000, 450))
MainWindow.setMaximumSize(QtCore.QSize(1000, 450))
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(10, 10, 81, 31))
self.label.setTextFormat(QtCore.Qt.AutoText)
self.label.setAlignment(QtCore.Qt.AlignCenter)
self.label.setObjectName("label")
self.textEdit = QtWidgets.QTextEdit(self.centralwidget)
self.textEdit.setGeometry(QtCore.QRect(100, 10, 150, 31))
self.textEdit.setObjectName("textEdit")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(280, 10, 81, 31))
self.label_2.setTextFormat(QtCore.Qt.AutoText)
self.label_2.setAlignment(QtCore.Qt.AlignCenter)
self.label_2.setObjectName("label_2")
self.textEdit_2 = QtWidgets.QTextEdit(self.centralwidget)
self.textEdit_2.setGeometry(QtCore.QRect(370, 10, 150, 31))
self.textEdit_2.setObjectName("textEdit_2")
self.label_3 = QtWidgets.QLabel(self.centralwidget)
self.label_3.setGeometry(QtCore.QRect(580, 10, 81, 31))
self.label_3.setTextFormat(QtCore.Qt.AutoText)
self.label_3.setAlignment(QtCore.Qt.AlignCenter)
self.label_3.setObjectName("label_3")
self.textEdit_3 = QtWidgets.QTextEdit(self.centralwidget)
self.textEdit_3.setGeometry(QtCore.QRect(670, 10, 71, 31))
self.textEdit_3.setObjectName("textEdit_3")
self.textEdit_4 = QtWidgets.QTextEdit(self.centralwidget)
self.textEdit_4.setGeometry(QtCore.QRect(860, 10, 71, 31))
self.textEdit_4.setObjectName("textEdit_4")
self.label_4 = QtWidgets.QLabel(self.centralwidget)
self.label_4.setGeometry(QtCore.QRect(770, 10, 81, 31))
self.label_4.setTextFormat(QtCore.Qt.AutoText)
self.label_4.setAlignment(QtCore.Qt.AlignCenter)
self.label_4.setObjectName("label_4")
self.tableWidget = QtWidgets.QTableWidget(self.centralwidget)
self.tableWidget.setGeometry(QtCore.QRect(10, 140, 981, 271))
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.tableWidget.sizePolicy().hasHeightForWidth())
self.tableWidget.setSizePolicy(sizePolicy)
self.tableWidget.setMidLineWidth(1)
self.tableWidget.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustToContents)
self.tableWidget.setAutoScroll(True)
self.tableWidget.setTabKeyNavigation(True)
self.tableWidget.setVerticalScrollMode(QtWidgets.QAbstractItemView.ScrollPerItem)
self.tableWidget.setColumnCount(3)
self.tableWidget.setObjectName("tableWidget")
self.tableWidget.setRowCount(0)
self.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Interactive)
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setHorizontalHeaderItem(0, item)
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(860, 70, 121, 61))
self.pushButton.setObjectName("pushButton")
self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(320, 80, 521, 41))
self.lineEdit.setObjectName("lineEdit")
self.label_5 = QtWidgets.QLabel(self.centralwidget)
self.label_5.setGeometry(QtCore.QRect(240, 80, 71, 41))
self.label_5.setObjectName("label_5")
self.label_6 = QtWidgets.QLabel(self.centralwidget)
self.label_6.setGeometry(QtCore.QRect(20, 70, 141, 21))
self.label_6.setObjectName("label_6")
self.label_7 = QtWidgets.QLabel(self.centralwidget)
self.label_7.setGeometry(QtCore.QRect(20, 100, 141, 21))
self.label_7.setObjectName("label_7")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 1000, 26))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "贴吧关键词帖子筛选工具"))
self.label.setText(_translate("MainWindow", "吧名:"))
self.label_2.setText(_translate("MainWindow", "关键字:"))
self.label_3.setText(_translate("MainWindow", "起始页:"))
self.label_4.setText(_translate("MainWindow", "结束页:"))
self.tableWidget.setHorizontalHeaderLabels(['贴名','地址','时间'])
self.pushButton.setText(_translate("MainWindow", "开始"))
self.label_5.setText(_translate("MainWindow", "当前状态:"))
self.label_6.setText(_translate("MainWindow", "作者:KONMIN"))
self.label_7.setText(_translate("MainWindow", "版本:v0.0.1"))