Согласно документации FB, каждый элемент в партии считается отдельным вызовом.
В настоящее время мы ограничиваем количество запросов, которые могут быть в пакете, до 50, но каждый вызов в пакете учитывается отдельно для целей расчета лимитов вызовов API и лимитов ресурсов. Например, пакет из 10 вызовов API будет считаться как 10 вызовов, и каждый вызов в пакете вносит одинаковый вклад в ограничение ресурсов ЦП.
Цитируется из: https://developers.facebook.com/docs/reference/api/batch/
Однако у меня нет эмпирических данных.
Дэвид
Вы можете использовать BeautifulSoup с этим (и другими) методами:
soup = BeautifulSoup(source.lower())
to_extract = soup.findAll('script')
for item in to_extract:
item.extract()
Это фактически удаляет узлы из HTML. Если вы хотите оставить пустые теги
, вам придется работать с атрибутами item
, а не просто извлекать их из супа.
Вы пытаетесь предотвратить XSS ? Простое удаление тегов
, почему бы просто не удалить весь узел?
Ожидаете ли вы src и body в стиле resig?
Если вы не хотите импортировать какие-либо модули:
string = "<script> this is some js. begone! </script>"
string = string.split(' ')
for i, s in enumerate(string):
if s == '<script>' or s == '</script>' :
del string[i]
print ' '.join(string)
Я недостаточно хорошо знаю Python, чтобы подсказать вам решение. Но если вы хотите использовать это для очистки пользовательского ввода, вы должны быть очень и очень осторожны. Удаление вещей между и просто не улавливает всего. Может быть, вы можете взглянуть на существующие решения (я предполагаю, что Django включает что-то вроде этого).
example_text = "This is some text <script> blah blah blah </script> this is some more text."
import re
myre = re.compile("(^.*)<script>(.*)</script>(.*$)")
result = myre.match(example_text)
result.groups()
<52> ('This is some text ', ' blah blah blah ', ' this is some more text.')
# Text between <script> .. </script>
result.group(2)
<56> 'blah blah blah'
# Text outside of <script> .. </script>
result.group(1)+result.group(3)
<57> 'This is some text this is some more text.'
Вы можете сделать это с помощью модуля HTMLParser (сложный) или использовать регулярные выражения:
import re
content = "asdf <script> bla </script> end"
x=re.search("<script>.*?</script>", content, re.DOTALL)
span = x.span() # gives (5, 27)
stripped_content = content[:span[0]] + content[span[1]:]
EDIT: re.DOTALL, спасибо tgray
Element Tree - самый простой и удобный пакет для этого. Да, есть и другие способы сделать это; но не используйте «потому что они отстой! (через Марка Пилигрима)