我正在使用python-requests编写一个web scraper.
每个页面都超过1MB,但我需要提取的实际数据很早就在文档的流程中,所以我浪费时间下载大量不必要的数据.
如果可能的话,我想在文档源代码中出现所需数据后立即停止下载,以节省时间.
例如,我只想提取"abc"Div中的文本,文档的其余部分是无用的:
<html>
<head>
<title>My site</title>
</head>
<body>
<div id="abc">blah blah...</div>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris fermentum molestie ligula, a pharetra eros mollis ut.</p>
<p>Quisque auctor volutpat lobortis. Vestibulum pellentesque lacus sapien, quis vulputate enim mollis a. Vestibulum ultrices fermentum urna ac sodales.</p>
<p>Nunc sit amet augue at dolor fermentum ultrices. Curabitur faucibus porttitor vehicula. Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p>Etiam sed leo at ipsum blandit dignissim ut a est.</p> …Run Code Online (Sandbox Code Playgroud) 使用频道ID列表,例如:
channel_ids = ['UC6nSFpj9HTCZ5t-N3Ra3-HB','UC6nSFpjSEBUCZ5t-N3Ra3-HB','UC6nrst90rsd3Z5t-N3Ra3-HC','UC6nSFpjd329th0rt-tuTH3-HA']
我想使用YouTube Data API v3检索所有这些频道的50个最新视频上传内容,使用尽可能少的http请求和尽可能少的时间.
我目前的做法是:
from apiclient.discovery import build
youtube = build('youtube', 'v3', developerKey=key)
channel_ids = ['UC6nSFpj9HTCZ5t-N3Ra3-HB', 'UC6nSFpjSEBUCZ5t-N3Ra3-HB', 'UC6nrst90rsd3Z5t-N3Ra3-HC', 'UC6nSFpjd329th0rt-tuTH3-HA']
videos_by_channel = {}
for channel_id in channel_ids:
search_response = youtube.search().list(part="id",
type='video',
order='date',
channelId=channel_id,
maxResults=50).execute()
videoIds = []
for search_result in search_response.get("items", []):
if search_result["id"]["kind"] == "youtube#video":
videoIds.append(search_result['id']['videoId'])
search_response = youtube.videos().list(
id=",".join(videoIds),
part="id,snippet"
).execute()
videos_by_channel[channel_id] = search_response
Run Code Online (Sandbox Code Playgroud)
它工作但使用了很多服务器调用,并不是很快.我已经阅读了文档,但找不到更快的方法,任何想法?
我正在尝试通过QThreadPyQt 更新Qt GUI对象中的文本,但我只是得到错误QPixmap: It is not safe to use pixmaps outside the GUI thread,然后它崩溃了.我真的很感激任何帮助,谢谢.
class MainWindow(QMainWindow, Ui_MainWindow):
def __init__(self, parent = None):
QMainWindow.__init__(self, parent)
self.setupUi(self)
self.output = Output()
def __del__ (self):
self.ui = None
@pyqtSignature("")
def on_goBtn_released(self):
threadnum = 1
#start threads
for x in xrange(threadnum):
thread = TheThread()
thread.start()
class Output(QWidget, Ui_Output):
def __init__(self, parent = None):
QWidget.__init__(self, parent)
self.setupUi(self)
self.ui = Ui_Output
self.show()
def main(self):
self.textBrowser.append("sdgsdgsgsg dsgdsg dsgds gsdf")
class TheThread(QtCore.QThread):
trigger = pyqtSignal() …Run Code Online (Sandbox Code Playgroud) 我使用 AWS p3 实例使用 GPU 加速训练以下模型:
x = CuDNNLSTM(128, return_sequences=True)(inputs)
x = Dropout(0.2)(x)
x = CuDNNLSTM(128, return_sequences=False)(x)
x = Dropout(0.2)(x)
predictions = Dense(1, activation='tanh')(x)
model = Model(inputs=inputs, outputs=predictions)
Run Code Online (Sandbox Code Playgroud)
训练后,我用 Keras 的save_model函数保存了模型,并将其移至没有 GPU 的单独生产服务器。
当我尝试在生产服务器上使用该模型进行预测时,它失败并显示以下错误:
没有注册任何 OpKernel 来支持具有这些属性的 Op 'CudnnRNN'。注册设备:[CPU],注册内核:
我猜这是因为生产服务器没有 GPU 支持,但我希望这不会成为问题。有什么办法可以在没有 GPU 的生产服务器上使用这个模型?
我在同一区域有一个EC2实例和一个S3存储桶.该存储桶包含我的EC2实例定期使用的相当大的(5-20mb)文件.
我想以编程方式在我的EC2实例上打开文件(使用python).像这样:
file_from_s3 = open('http://s3.amazonaws.com/my-bucket-name/my-file-name')
Run Code Online (Sandbox Code Playgroud)
但是使用"http"URL远程访问文件似乎非常低效,当然这意味着每次我想使用它时都要将文件下载到服务器.
我想知道的是,有没有办法可以从我的EC2实例本地访问S3文件,例如:
file_from_s3 = open('s3://my-bucket-name/my-file-name')
Run Code Online (Sandbox Code Playgroud)
我自己找不到解决方案,感谢任何帮助,谢谢.
使用Javascript,我试图在页面上的某些文本周围包装span标签,但我不想在一组span标签内部的文本周围包装标签.
目前我正在使用:
html = $('#container').html();
var regex = /([\s| ]*)(apple)([\s| ]*)/g;
html = html.replace(regex, '$1<span class="highlight">$2</span>$3');
Run Code Online (Sandbox Code Playgroud)
它可以工作,但如果它在同一个字符串上使用两次,或者如果字符串稍后出现在另一个字符串中,例如'一堆苹果',然后是'苹果',我最终得到这个:
<span class="highlight">a bunch of <span class="highlight">apples</span></span>
Run Code Online (Sandbox Code Playgroud)
我不希望它第二次替换'apples',因为它已经在span标签内.
它应该符合'苹果'这里:
Red apples are my <span class="highlight">favourite fruit.</span>
Run Code Online (Sandbox Code Playgroud)
但不是这里:
<span class="highlight">Red apples are my favourite fruit.</span>
Run Code Online (Sandbox Code Playgroud)
我尝试过使用它,但它不起作用:
([\s| ]*)(apples).*(?!</span)
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.谢谢.
在models.py的底部,我有:
from paypal.standard.ipn.signals import payment_was_successful, payment_was_flagged
import pay
payment_was_successful.connect(pay.paypal_success)
payment_was_flagged.connect(pay.paypal_flagged)
Run Code Online (Sandbox Code Playgroud)
我正在使用Paypal Developer IPN模拟器并返回"IPN已成功发送",但代码中pay.paypal_success并且pay.paypal_flagged未执行.
该paypal_ipn表正在填充,但我注意到flag_info每一行都有:
Invalid form. (<ul class="errorlist"><li>payment_date<ul class="errorlist">
<li>Enter a valid date/time.</li></ul></li></ul>)
Run Code Online (Sandbox Code Playgroud)
我不知道这是否与信号不起作用有关.
python ×5
amazon-ec2 ×1
amazon-s3 ×1
django ×1
html ×1
http ×1
javascript ×1
keras ×1
paypal ×1
paypal-ipn ×1
pyqt ×1
regex ×1
tensorflow ×1
youtube ×1
youtube-api ×1