小编Mil*_*ano的帖子

BS4:在标签中获取文本

我正在用美味的汤.有这样的标签:

<li><a href="example"> s.r.o., <small>small</small></a></li>

我想获得不在<a>标签中的文字.所以我想把" sro "作为输出.

我试过<small>但它不起作用.BS4中有命令可以做到吗?

谢谢

html python parsing beautifulsoup html-parsing

12
推荐指数
1
解决办法
3万
查看次数

Django - 没有这样的表异常

在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)

所以我删除了所有旧的迁移makemigrationsmigrate再次运行,这似乎有效.

不幸的是,我注意到,它并没有帮助,因为当我尝试点击User customer profilesUser 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)

python sqlite django migrate makemigrations

11
推荐指数
7
解决办法
3万
查看次数

将堆栈跟踪打印到文件的异常

我正在尝试将简单的日志放入我的脚本中.此日志应告诉我错误的位置以及修复脚本所需的尽可能多的信息.

我把打印文件str(e)放到每个文件中除外,但它提供了很少的信息来知道出了什么问题.

我怎么能详细说明呢?例如,我可以在控制台中看到整个未捕获的异常文本?

try:
    #code
except Exception as e:
   print_to_file(log.txt,str(e))
Run Code Online (Sandbox Code Playgroud)

python exception try-catch try-except

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

python跳转到txt文件中的一行(一个gzipped)

我正在阅读一个大文件并进行处理.我希望能够跳到文件的中间,而不需要花费很长时间.

现在我在做:

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 file-io

9
推荐指数
2
解决办法
1174
查看次数

Selenium/PhantomJS引发错误

我正在尝试在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)

你知道我做错了什么吗?

python browser selenium phantomjs

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

使用 Selenium 缓慢向下滚动页面

我正在尝试从航班搜索页面抓取一些数据。

这个页面是这样工作的:

您填写表格,然后单击按钮搜索 - 没问题。当您单击按钮时,您将被重定向到带有结果的页面,这就是问题所在。此页面连续添加结果,例如一分钟,这没什么大不了的 - 问题是要获得所有这些结果。当您在真实浏览器中时,您必须向下滚动页面,才会出现这些结果。所以我尝试使用 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)

python selenium scroll selenium-webdriver

9
推荐指数
4
解决办法
1万
查看次数

SyntaxError: 在前缀映射中找不到前缀“a”

我正在尝试创建一个计算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)

python elementtree python-2.7

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

Django 管理员:在 list_editable 中预取选择

我有一个模型Domain,并将其ForeignKey语言模型设置list_editableModelAdmin.

问题是它会引起大量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?

python sql django django-admin

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

如何在Ubuntu 19.04上安装Python 3.6?

我最近安装了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)

python ubuntu ubuntu-19.04

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

元帅反序列化 - 不安全

我在一个项目上工作,我用它cPickle来快速加载文件.几天前,我读到的内容marshal甚至比它快cPickle.它适用于我,但我很好奇,文档中的这个警告是什么:

警告

marshal模块不是为了防止错误或恶意构造的数据.永远不要从不受信任或未经身份验证的来源解组数据.

如果我不小心,会发生什么?

python warnings marshalling

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