[问题] 爬虫问题

楼主: MAGICXX (逢甲阿法)   2018-05-21 10:20:49
大家早安
我是个爬虫新手...
我现在想要抓水库的每日资料
抓到一半 就卡住了...
下面是我的code
# -*- coding: utf-8 -*-
import pandas as pd
from selenium import webdriver
from selenium.webdriver.support.ui import Select
from selenium.webdriver.chrome.options import Options
import _uniout
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
driver=webdriver.Firefox()
url='http://fhy.wra.gov.tw/ReservoirPage_2011/StorageCapacity.aspx'
driver.get(url)
sel = Select(driver.find_element_by_id('ctl00_cphMain_cboSearch'))
sel.select_by_index(2)
data=pd.read_html(url)
print data
有两个问题
1. 我现在执行之后 会印出一串的乱码...
https://i.imgur.com/gsXnlWz.png
我上网找过解决方式 也在一开始用了
# -*- coding: utf-8 -*-
还是乱码 避免政府网站用的是big5之类的
也用chardet试过
>>> import urllib
>>>
data=urllib.urlopen('http://fhy.wra.gov.tw/ReservoirPage_2011/StorageCapacity.aspx').read()
>>> import chardet
>>> chardet.detect(data)
{'confidence': 0.99, 'language': '', 'encoding': 'utf-8'}
所以确定是utf-8
结果还是乱码..那我该处理阿...?
2.我现在想要抓2018年5月20日的“水库及拦河堰”的资料
可是我现在已经利用selenium下去将下拉式选单改成第三项
可是最后读取之后还是读取到第一项
请问我在data=pd.read_html(url) 该放什么?
麻烦各位大大了...
作者: TitanEric (泰坦)   2018-05-21 10:41:00
一开始在py档宣告utf8是说明这份档案是utf8编码 但如果你抓爬虫的资料 你要用str.decode(“utf8”)转码至于第二个问题要看你的code喔
作者: eri820503 (snoopyahoo)   2018-05-21 12:01:00
第二个问题应该是这网页用javascript动态改变table的资料,所以你爬原本的url只会是第一项可以google看怎么爬这类的网页
作者: HenryLiKing (HenryLiKing)   2018-05-22 00:37:00
一定要用READ_HTML吗?还是可以用别的(?)
楼主: MAGICXX (逢甲阿法)   2018-05-22 00:39:00
不用read也可以 只是我不知道其他方式而已…
作者: FreedomTrail (FreedomTrail)   2018-05-26 15:58:00
好奇你是用sublimerepl吗?我试过中文路径的code进去会有乱码,似乎是package造成的,供参考
作者: kobe8112 (小B)   2018-06-01 00:00:00
你如果是windows环境,改utf-8-sig试试等等,你要不要先试试存盘后用文字编辑器开看看,而不是直接用print的在标准输出接口印出来?

Links booklink

Contact Us: admin [ a t ] ucptt.com