小编bl7*_*l79的帖子

如何使Selenium不等到整页加载,脚本速度慢?

Selenium driver.get (url)等到整页加载.但是抓取页面试图加载一些死的JS脚本.所以我的Python脚本等待它并且几分钟不起作用.此问题可能出现在网站的每个页面上.

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://www.cortinadecor.com/productos/17/estores-enrollables-screen/estores-screen-corti-3000')
# It try load: https://www.cetelem.es/eCommerceCalculadora/resources/js/eCalculadoraCetelemCombo.js 
driver.find_element_by_name('ANCHO').send_keys("100")
Run Code Online (Sandbox Code Playgroud)

如何限制等待的时间,阻止文件的AJAX加载,还是以其他方式?

我也在测试我的脚本webdriver.Chrome(),但是会使用PhantomJS(),或者可能是Firefox().因此,如果某些方法使用浏览器设置的更改,那么它必须是通用的.

python selenium google-chrome selenium-chromedriver pageloadstrategy

14
推荐指数
2
解决办法
1万
查看次数

更改 url 参数

如何更改 url 的参数值?没有正则表达式。

现在我试试这个,但它很长:

from urllib.parse import parse_qs, urlencode,  urlsplit
url = 'http://example.com/?page=1&text=test#section'
param, newvalue = 'page', '2'

url, sharp, frag = url.partition('#')
base, q, query = url.partition('?')
query_dict = parse_qs(query)
query_dict[param][0] = newvalue
query_new = urlencode(query_dict, doseq=True)
url_new = f'{base}{q}{query_new}{sharp}{frag}'
Run Code Online (Sandbox Code Playgroud)

另外,我通过 urlsplit 尝试过:

parsed = urlsplit(url)
query_dict = parse_qs(parsed.query)
query_dict[param][0] = newvalue
query_new = urlencode(query_dict, doseq=True)
parsed.query = query_new
url_new = urlencode(parsed)
Run Code Online (Sandbox Code Playgroud)

但就urlparsed.query = query_new它上升错误AttributeError: can't set attribute

python url urllib

6
推荐指数
2
解决办法
2204
查看次数

在查询结果中添加自己的文字字符串作为附加字段 - SQLAlchemy

如何在 SQLAlchemy ORM 中模拟以下原始 SQL?

SELECT "http://example.com/page/"||table.pagename as pageUrl
Run Code Online (Sandbox Code Playgroud)

需要从表中获取值,使用 ORM/Python 进行修改(这里只是字符串连接),然后将 SQLAlchemy 查询的结果作为附加字段输出。

python sqlalchemy

1
推荐指数
1
解决办法
4773
查看次数