在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/ Python問答
掛念你 回答

只要你沒有重寫父類的方法,你不要利用super就可以,擁有父類B的方法,全繼承過來,當(dāng)然可以調(diào)用了

胭脂淚 回答

不寫了是 json 么。

json.dumps([{'type': 'a'}, {'type': 'b'}])
情未了 回答

你的cookie文件有問題,看樣子你是用了Chrome EditThisCookie 這個插件?
導(dǎo)出cookie的時候,插件默認是json格式,需要把它改成LWP:Perl格式才行。
clipboard.png

標準的 Set-Cookies3 格式如下:

// Semicolon separated Cookie File
// This file was generated by EditThisCookie
// Details: http://www.cookiecentral.com/faq/#3.5
// Example: http://www.tutorialspoint.com/javascript/javascript_cookies.htm
// URL: https://segmentfault.com/q/1010000013426257
Set-Cookie3: _ga=GA1.2.1747822062.1519069386; path="/"; domain=.segmentfault.com; path_spec; expires="1582838034"; version=0
Set-Cookie3: _gid=GA1.2.1140460524.1519670333; path="/"; domain=.segmentfault.com; path_spec; expires="1519852434"; version=0
Set-Cookie3: afpCT=1; path="/"; domain=.segmentfault.com; path_spec; expires="1519769616"; version=0

具體cookielib是怎么運作的,可以參考一下源代碼。

修改:
試試這個代碼呢,可以嘗試用cookielib抓取某個網(wǎng)站的cookie和你的文件做一下格式上的對比。
我用了python2.7.14, 運行無礙。

# -*- coding: utf-8 -*-
import cookielib
import urllib2

def save_cookies_LWP():    
    filename = 'cookies_LWP.txt'
    cookie = cookielib.LWPCookieJar(filename)
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
    response = opener.open("http://example.webscraping.com")
    cookie.save(ignore_discard=True, ignore_expires=True)

save_cookies_LWP()

cookies_path = './cookies_LWP.txt'
load_cookiejar = cookielib.LWPCookieJar(cookies_path)
load_cookiejar.load()

抓取到的LWP格式的cookie文本內(nèi)容如下:

#LWP-Cookies-2.0
Set-Cookie3: session_data_places="\"2a114e7184c63428656b257f79b6021f:Ki6ay7ZhMIym9RoBvCMdiygjJkaKZOWbw8fWfKidfrWsrY8skd3837uUpNnbckadaVU00KxufrwCIcSfr9oCZYusTLXIbzVvfq9oJmTMKQCaaH8WRqA9fwUDKTgSK0EVOXX6DyOpxGxK2oQ8D4xHAfsVVst7ol3QwAT0Jsd_9FqIuhuuMUt1TL755EoZGYWt\""; path="/"; domain="example.webscraping.com"; path_spec; discard; version=0
Set-Cookie3: session_id_places=True; path="/"; domain="example.webscraping.com"; path_spec; discard; httponly=None; version=0

針對此問題的解答

cookies_json.txt 內(nèi)容如下:

"""

[
    {"domain": ".a.weixin.qq.com",
    "expirationDate": 1519770087,
    "hostOnly": false,
    "httpOnly": false,
    "name": "ADUSER_OPEN_ID",
    "path": "/",
    "sameSite": "no_restriction",
    "secure": false,
    "session": false,
    "storeId": "0",
    "value": "oQiT2txobu98sxd0xwB8CYtWRUFo",
    "id": 1}
]
"""
cookies_json_path = './cookies_json.txt'
cookies_results = []
with open(cookies_json_path, 'r') as cookie_file:
    cookies_list = json.loads(
        cookie_file.read()
    )

    for c in cookies_list:
        cookies_results.append(c)
             
print cookies_results

# 結(jié)果如下
"""
[{u'domain': u'.a.weixin.qq.com', u'name': u'ADUSER_OPEN_ID', u'storeId': u'0', u'value': u'oQiT2txobu98sxd0xwB8CYtWRUFo', u'session': False, u'hostOnly': False, u'expirationDate': 1519770087, u'sameSite': u'no_restriction', u'path': u'/', u'id': 1, u'httpOnly': False, u'secure': False}]
"""
柚稚 回答

因為你沒user.save()

兔寶寶 回答

已解決 通過結(jié)構(gòu)去處理

硬扛 回答

== 是比較兩個對象的值是否相等。
is 除了比較對象的值是否相等,還涉及到比較兩個對象的內(nèi)存地址是否相等。

>>> type(zhuangshi(A))
<class 'function'>
>>> zhuangshi(A)
<function zhuangshi.<locals>.inner at 0x7f7823a98b70> # 注意查看最后的內(nèi)存地址
>>> zhuangshi(A)
<function zhuangshi.<locals>.inner at 0x7f78208ac7b8> # 注意查看最后的內(nèi)存地址
>>> c, d = A, A
>>> type(c)
<class 'type'>
>>> type(d)
<class 'type'>
>>> c
<class '__main__.A'>
>>> d
<class '__main__.A'>
>>>
>>> c is d
True
>>>

綜上比較,分明是 zhuangshi 這個類定義的是 返回一個 inner 對象,每次調(diào)用都會執(zhí)行一次 inner 函數(shù),所以調(diào)用的內(nèi)存地址是不一樣的。

陌離殤 回答

網(wǎng)頁經(jīng)過了gzip壓縮,需要解壓:

from urllib import request
import gzip

url = "http://odds.500.com/fenxi/yazhi-749525.shtml"
headers = {

"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0"
}
req = request.Request(url)
resp = request.urlopen(req)
f = gzip.decompress(resp.read())
print(f.decode('gbk'))

更推薦直接使用requests庫:

import requests
url = "http://odds.500.com/fenxi/yazhi-749525.shtml"
content = requests.get(url).content

print(content.decode('gbk'))
巫婆 回答

CPython將代碼翻譯為python虛擬機指令。線程從指令集中獲取指令去執(zhí)行。GIL的全局鎖保證了同一時刻最多只能有一個線程去指令集獲取指令。為啥線程還要上鎖防止競爭呢? 這是因為CPython本身并不是線程安全的,也涉及到垃圾回收的??赡芤粋€我們認為一個動作可能需要多個指令去完成的, a = {} 在可能要 4~5 個指令來完成這個動作。

關(guān)于多線程的GIL問題,可以看看這篇關(guān)于源碼上的分析:https://www.hongweipeng.com/i...

python里面字節(jié)碼的執(zhí)行過程問題里寫的虛擬機運行方式是正確的,關(guān)于字節(jié)碼和執(zhí)行過程可以看看:https://www.hongweipeng.com/i... 這是對于一般表達式的字節(jié)碼和其執(zhí)行過程。

別逞強 回答

代碼里有中文,你在代碼第一行加上 # -- coding:utf-8 --

話寡 回答

day2:
我把mysql容器換成mongo部署運行日志已經(jīng)不報錯了,但是還是沒有辦法運行。。。估計pyspider的docker部署還是要依賴于mysql。

day3:
我把環(huán)境放到win10下去執(zhí)行這個官網(wǎng)docker命令,錯誤還是依舊?,F(xiàn)在想方法能不能修改這個容器,或者說能夠找到容器的歷史版本。

day3.1:
https://github.com/binux/pysp...
在github上翻到一個解決方案,跟我想的一樣,但是我還是不會解決,準備去稍微學(xué)學(xué)docker的使用方法。

day5:
binux/pyspider容器mysql的解決方案的網(wǎng)址:
https://github.com/binux/pysp...

linux命令操作:
$:mkdir pyspiderproject && cd pyspiderproject
$:touch Dockerfile
$:gedit Dockerfile
文檔輸入:
FROM binux/pyspider
RUN pip install MySQL-python
VOLUME ["/opt/pyspider"]
ENTRYPOINT ["pyspider"]
EXPOSE 5000 23333 24444 25555
$:docker build -t binux/pyspider:my .

之后各種stop rm 容器,再按官方文檔操作。

找到了問題的解決方案,現(xiàn)在果然報錯變得不一樣了?,F(xiàn)在的報錯是:

$:docker logs result_worker

sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (2059, "Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/lib/mysql/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory") (Background on this error at: http://sqlalche.me/e/e3q8)

我猜測是mysql的容器修改了操作方法,導(dǎo)致pyspider無法鏈接上這個版本的mysql容器。初步意向是尋找老版本的mysql的version使用。

day5.1:
最后我成功解決了該問題,果然是mysql的version對不上號,需要將mysql:latest 改為mysql:5.7
最后一路運行到最后,Dashboard打開速度特別慢,我心都快涼了,但是居然打開了,測試運行成功。完美。

護她命 回答

setState() 是一個異步操作,后面的 console.log() 執(zhí)行的時候, state 還沒更新完,所以輸出的是之前的值。

小眼睛 回答

提示錯誤就是所引用的元素已不再依附于當(dāng)前頁面了,原因大致是頁面跳轉(zhuǎn)或者刷新導(dǎo)致的頁面內(nèi)容變更。
估計你是想遍歷文章標題,點擊標題進入正文,然后抓取保存成pdf。

那么看代碼:

pdfkit.from_string(html, "F:\Confirm Data\{}.pdf".format(all[i].text), configuration=config)

在 click() 事件后,頁面都刷新或者跳轉(zhuǎn)了,從新頁面的源碼中引用 all[i].text 導(dǎo)致報錯。

心上人 回答

這種時候就不要用不同的變量名區(qū)分同類對象了,應(yīng)該用數(shù)組或字典(當(dāng)然你強行要用變量名也是有辦法的)

people = [
    {
        'first_name': 'zeyu',
        'last_name': 'zhou',
        'age': 23,
        'living_city': "huaian"
    },
    {
        'first_name': 'asdfa',
        'last_name': 'zhasdfadfaou',
        'age': 293,
        'living_city': "echo"
    }
]

people = {
    'zeyu': {
        'first_name': 'zeyu',
        'last_name': 'zhou',
        'age': 23,
        'living_city': "huaian"
    },
    'asdfa': {
        'first_name': 'asdfa',
        'last_name': 'zhasdfadfaou',
        'age': 293,
        'living_city': "echo"
    }
}

數(shù)組的元素可以是字典,字典的value可以是另一個字典。

玄鳥 回答

對于line2到line5,都是1跟+匹配,然后括號里跟剩下的字符串匹配。由于你第一字符沒有捕獲,所以findall的結(jié)果中沒有第一個正號。而match返回的匹配的對象,并不需要捕獲,所以是+14。


  1. - ?
不將就 回答

這個需要重寫父類的方法,把 verbose_name 標記是安全的字符串。

class MarkSafeCharField(models.FloatField):
    def formfield(self, **kwargs):
        kwargs['label'] = mark_safe(self.verbose_name)
        return super().formfield(**kwargs)
        
# 在模型中
name= MarkSafeCharField(verbose_name='K<sub>2</sub>0')

就可以看到你要的了:

圖片描述

懶洋洋 回答

yield scrapy.Request(item['url'], callback=self.parse_city)

yield scrapy.Request(url=url, callback=self.parse_province)
修改成
yield from scrapy.Request(item['url'], callback=self.parse_city)

yield from scrapy.Request(url=url, callback=self.parse_province)