我正在用美味的汤.有这样的标签:
<li><a href="example"> s.r.o., <small>small</small></a></li>
我想获得不在<a>标签中的文字.所以我想把" sro "作为输出.
我试过<small>但它不起作用.BS4中有命令可以做到吗?
谢谢
在Django中,我添加了一些模型models.py.之后manage.py makemigrations,manage.py migrate提出了这个例外:
django.db.utils.OperationalError: no such table: auth_test_usertranslatorprofile
Run Code Online (Sandbox Code Playgroud)
所以我删除了所有旧的迁移makemigrations并migrate再次运行,这似乎有效.
不幸的是,我注意到,它并没有帮助,因为当我尝试点击User customer profiles的User translator profiles它会引发异常:
环境:
Request Method: GET
Request URL: http://127.0.0.1:8000/admin/auth_test/usertranslatorprofile/
Django Version: 1.8.7
Python Version: 2.7.10
Installed Applications:
('django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'auth_test')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware')
Traceback:
File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response
132. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Python27\lib\site-packages\django\contrib\admin\options.py" in wrapper
618. return self.admin_site.admin_view(view)(*args, **kwargs)
File …Run Code Online (Sandbox Code Playgroud) 我正在尝试将简单的日志放入我的脚本中.此日志应告诉我错误的位置以及修复脚本所需的尽可能多的信息.
我把打印文件str(e)放到每个文件中除外,但它提供了很少的信息来知道出了什么问题.
我怎么能详细说明呢?例如,我可以在控制台中看到整个未捕获的异常文本?
try:
#code
except Exception as e:
print_to_file(log.txt,str(e))
Run Code Online (Sandbox Code Playgroud) 我正在阅读一个大文件并进行处理.我希望能够跳到文件的中间,而不需要花费很长时间.
现在我在做:
f = gzip.open(input_name)
for i in range(1000000):
f.read() # just skipping the first 1M rows
for line in f:
do_something(line)
Run Code Online (Sandbox Code Playgroud)
是否有更快的方法来跳过压缩文件中的行?如果我必须首先解压缩它,我会这样做,但必须有一种方法.
它当然是一个文本文件,带有\n分隔线.
我正在尝试在Python中运行PhantomJS驱动程序,但我收到错误.我已经读过,我应该把整条路径作为一个论点,但它没有帮助.
这是代码:
from selenium import webdriver
# driver = webdriver.Chrome('D:\Python_projects\chromedriver_win32/chromedriver.exe') # this works
driver = webdriver.PhantomJS(executable_path='D:\Python\phantomjs-2.0.0-windows\bin\phantomjs.exe')
Run Code Online (Sandbox Code Playgroud)
错误:
Traceback (most recent call last):
File "path to script", line 8, in <module>
driver = webdriver.PhantomJS(executable_path='D:\Python\phantomjs-2.0.0-windows\bin\phantomjs.exe')
File "C:\Python27\lib\site-packages\selenium\webdriver\phantomjs\webdriver.py", line 50, in __init__
self.service.start()
File "C:\Python27\lib\site-packages\selenium\webdriver\phantomjs\service.py", line 75, in start
raise WebDriverException("Unable to start phantomjs with ghostdriver.", e)
selenium.common.exceptions.WebDriverException: Message: Unable to start phantomjs with ghostdriver.
Screenshot: available via screen
Run Code Online (Sandbox Code Playgroud)
你知道我做错了什么吗?
我正在尝试从航班搜索页面抓取一些数据。
这个页面是这样工作的:
您填写表格,然后单击按钮搜索 - 没问题。当您单击按钮时,您将被重定向到带有结果的页面,这就是问题所在。此页面连续添加结果,例如一分钟,这没什么大不了的 - 问题是要获得所有这些结果。当您在真实浏览器中时,您必须向下滚动页面,才会出现这些结果。所以我尝试使用 Selenium 向下滚动。它在页面底部向下滚动可能如此之快,或者它是跳转而不是滚动页面不会加载任何新结果。
当您缓慢向下滚动时,它会重新加载结果,但如果您非常快速地向下滚动,它会停止加载。
我不确定我的代码是否有助于理解,所以我附上了它。
SEARCH_STRING = """URL"""
class spider():
def __init__(self):
self.driver = webdriver.Firefox()
@staticmethod
def prepare_get(dep_airport,arr_airport,dep_date,arr_date):
string = SEARCH_STRING%(dep_airport,arr_airport,arr_airport,dep_airport,dep_date,arr_date)
return string
def find_flights_html(self,dep_airport, arr_airport, dep_date, arr_date):
if isinstance(dep_airport, list):
airports_string = str(r'%20').join(dep_airport)
dep_airport = airports_string
wait = WebDriverWait(self.driver, 60) # wait for results
self.driver.get(spider.prepare_get(dep_airport, arr_airport, dep_date, arr_date))
wait.until(EC.invisibility_of_element_located((By.XPATH, '//img[contains(@src, "loading")]')))
wait.until(EC.invisibility_of_element_located((By.XPATH, u'//div[. = "Poprosíme o trpezlivos?, h?adáme pre Vás ešte viac letov"]/preceding-sibling::img')))
self.driver.execute_script("window.scrollTo(0,document.body.scrollHeight);")
self.driver.find_element_by_xpath('//body').send_keys(Keys.CONTROL+Keys.END)
return self.driver.page_source
@staticmethod
def get_info_from_borderbox(div):
arrival = div.find('div',class_='departure').text …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个计算pptx文档中字数的函数。问题是我不知道如何只找到这种标签:
<a:t>Some Text</a:t>
当我尝试:print xmlTree.findall('.//a:t'),它返回
SyntaxError: 在前缀映射中找不到前缀“a”
你知道怎么做才能让它发挥作用吗?
这是函数:
def get_pptx_word_count(filename):
import xml.etree.ElementTree as ET
import zipfile
z = zipfile.ZipFile(filename)
i=0
wordcount = 0
while True:
i+=1
slidename = 'slide{}.xml'.format(i)
try:
slide = z.read("ppt/slides/{}".format(slidename))
except KeyError:
break
xmlTree = ET.fromstring(slide)
for elem in xmlTree.iter():
if elem.tag=='a:t':
#text = elem.getText
#num = len(text.split(' '))
#wordcount+=num
Run Code Online (Sandbox Code Playgroud) 我有一个模型Domain,并将其ForeignKey语言模型设置list_editable为ModelAdmin.
问题是它会引起大量SQL查询django_debug_toolbar。我认为我可以使用它来解决它,select_related但它没有帮助,因为它只选择实际值,而不是所有选择。
@register(Domain)
class DomainAdmin(admin.ModelAdmin):
list_display = ['id', 'name', 'main_url', 'language', 'max_depth', 'number_of_urls']
list_editable = ['name', 'main_url', 'language', 'max_depth']
list_select_related = ['language']
#def get_queryset(self, request):
# return super(DomainAdmin, self).get_queryset(request).prefetch_related('language')
Run Code Online (Sandbox Code Playgroud)
它仍然SQL对 every 执行查询Domain以获取所有Language对象。
如何让它一次获取所有Domains?
我最近安装了Ubuntu 19.04具有Python 3.7默认。我需要处理多个使用的项目Python 3.6。
有没有办法在Disco Dingo上安装它?
我试过了 16.04
milano@milano-desktop:~$ sudo add-apt-repository ppa:jonathonf/python-3.6
...
milano@milano-desktop:~$ sudo apt-get install python3.6
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'python3.6-2to3' for regex 'python3.6'
Note, selecting 'libpython3.6-stdlib' for regex 'python3.6'
The following packages were automatically installed and are no longer required:
fonts-liberation2 fonts-opensymbol gir1.2-geocodeglib-1.0
gir1.2-gst-plugins-base-1.0 gir1.2-gstreamer-1.0 gir1.2-gudev-1.0
gir1.2-udisks-2.0 grilo-plugins-0.3-base gstreamer1.0-gtk3 guile-2.2-libs
libboost-date-time1.67.0 libboost-filesystem1.67.0 libboost-iostreams1.67.0
libboost-locale1.67.0 libcdr-0.1-1 libclucene-contribs1v5 libclucene-core1v5
libcmis-0.5-5v5 libcolamd2 libcurl4 …Run Code Online (Sandbox Code Playgroud) 我在一个项目上工作,我用它cPickle来快速加载文件.几天前,我读到的内容marshal甚至比它快cPickle.它适用于我,但我很好奇,文档中的这个警告是什么:
警告
该
marshal模块不是为了防止错误或恶意构造的数据.永远不要从不受信任或未经身份验证的来源解组数据.
如果我不小心,会发生什么?
python ×10
django ×2
selenium ×2
browser ×1
django-admin ×1
elementtree ×1
exception ×1
file-io ×1
html ×1
html-parsing ×1
marshalling ×1
migrate ×1
parsing ×1
phantomjs ×1
python-2.7 ×1
scroll ×1
sql ×1
sqlite ×1
try-catch ×1
try-except ×1
ubuntu ×1
ubuntu-19.04 ×1
warnings ×1