windows 下安裝tidylib
先去跑官方提供的測試用例報錯
ition 0: unexpected end of datatraceback (most recent call last):
file
"_ctypes/callbacks.c
", line 314, in
'calling callback function
'file
"d:\python27\lib\site-packages\tidylib\sink.py
", line 79, in
put_byte
write_func(byte.decode(
'utf-8'))
file
"d:\python27\lib\encodings\utf_8.py
", line 16, in
decode
return
codecs.utf_8_decode(input, errors, true)
unicodedecodeerror:
'utf8
' codec can'
t decode byte 0xb7 in position 0: invalid start byte
解決辦法:
將dll解壓到python安裝目錄下的scripts資料夾即可
在資料採集時,處理不規範的html頁面是件令人頭疼的事。因為不規範的html頁面往往會引起xpath解析失敗,造成得不到正確的資料。
這裡引入tidylib,例項採用抓取慧聰網為例子,使用示例如下,
from tidylib importtidy_document
import
requests
from lxml import
etree
url = "
"s =requests.session()
#proxies=
headers =
response = s.get(url, headers=headers).text
response, errors =tidy_document(response)
res =etree.html(response)
items = res.xpath('
//div/ul/li[contains(@class,"grid-list")]')
(response)
(len(items))
for item in
items:
d =dict()
d['name
'] = item.xpath('
.//div[2]/dl/dd/p/a/text()')
d['title
'] = item.xpath('
.//div[@class="newitem"]/div/a/@title')
d['price
'] = item.xpath('
.//div[2]/dl/dt/span/text()')
d['bcid
'] = item.xpath('
.//div[@class="newitem"]/@data-bcid')
d['username
'] =item.xpath('
.//div[@class="newitem"]/@data-username')
d['tel
'] =item.xpath('
./@data-telphone')
d['businid
'] =item.xpath('
./@data-businid')
d['sellerproviderid
'] =item.xpath('
./@data-sellerproviderid')
d['supcatid
'] =item.xpath('
./@data-supcatid')
d['main_product
'] =item.xpath('
.//div[@class="newitem"]/@data-obj')
print(d)
可以匹配導資料
......
解決OSPF的不規則區域
要求 隧道解決 位址規劃 r1 192.168.1.0 24 環迴 1.1.1.1 r2 192.168.2.0 24 環迴 2.2.2.2 r3 192.168.3.0 24 3.3.3.3 r4 192.168.4.0 24 4.4.4.4 r5 5.5.5.5 1在r1上配置位址 syssys...
一 解決OSPF不規則區域問題及例題
決ospf不規則區域問題 1 遠離骨幹的非骨幹區域 2 不連續骨幹區域 解決方法 tunnel 在兩台abr上建立tunnel,然後將其宣告到ospf協議中 缺點 1 選路不佳 2 週期hello和更新均對中間區域進行影響 思科inte ce tunnel 0 tunnel protocol gre...
使用table2excel匯出不規則table
專案需要匯出不規則資料,根據他的js改完後,發現table的列並未對齊,所以想了一下,一般合併單元格有兩種,一種是自身合併,一種是依據其他列合併,這兩種結合使用才能讓 完美呈現,貼下 乙個是根據自身,乙個是根據前列 function mergecells data,fieldname,colspan...