作者MAGICXX (逢甲阿法)
看板Python
标题[问题] 爬虫问题
时间Mon May 21 10:20:49 2018
大家早安
我是个爬虫新手...
我现在想要抓水库的每日资料
抓到一半 就卡住了...
下面是我的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) 该放甚麽?
麻烦各位大大了...
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.134.166.72
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1526869252.A.DB8.html
1F:推 TitanEric: 一开始在py档宣告utf8是说明这份档案是utf8编码 但如果 05/21 10:41
2F:→ TitanEric: 你抓爬虫的资料 你要用str.decode(“utf8”)转码 05/21 10:41
不好意思 我现在抓下来的资料是list 他似乎没有str这个属性
还是我要用回圈把她转换成str?
3F:→ TitanEric: 至於第二个问题要看你的code喔 05/21 10:42
※ 编辑: MAGICXX (140.134.166.72), 05/21/2018 10:58:05
4F:推 eri820503: 第二个问题应该是这网页用javascript动态改变table的资 05/21 12:01
5F:→ eri820503: 料,所以你爬原本的url只会是第一项 05/21 12:02
6F:→ eri820503: 可以google看怎麽爬这类的网页 05/21 12:04
7F:推 HenryLiKing: 一定要用READ_HTML吗? 05/22 00:37
8F:→ HenryLiKing: 还是可以用别的(?) 05/22 00:37
9F:→ MAGICXX: 不用read也可以 只是我不知道其他方式而已… 05/22 00:39
10F:推 FreedomTrail: 好奇你是用sublimerepl吗?我试过中文路径的code进 05/26 15:58
11F:→ FreedomTrail: 去会有乱码,似乎是package造成的,供参考 05/26 15:58
12F:→ kobe8112: 你如果是windows环境,改utf-8-sig试试 06/01 00:00
13F:→ kobe8112: 等等,你要不要先试试存档後用文字编辑器开看看,而不是 06/01 01:17
14F:→ kobe8112: 直接用print的在标准输出介面印出来? 06/01 01:17