Python爬蟲程式設計常見問題解決方法:
1.通用的解決方案:
【按住Ctrl鍵不送鬆】,同時用滑鼠點選【方法名】,檢視文件
2.TypeError: POST data should be bytes, an iterable of bytes, or a file object. It cannot be of type str.
問題描述:【型別錯誤】就是資料的型別應該是bytes型別,而不是str型別
解決方案:
data = data.encode('utf-8')
3.爬取得到的HTML在一行顯示
除錯步驟:通過print(type(html))檢視html的型別, 可以查出是bytes型別,就需要解碼
解決方案:
html = html.decode()
4.有時候使用爬蟲會被網站封了IP,所以需要去模擬瀏覽器
解決方案:
header = {"User-Agent": "mozilla/4.0 (compatible; MSIE 5.5; Windows NT)"}
req = request.Request(url=base_url,data=bytes(data,encoding='utf-8'),headers=header)
5.當伺服器返回json格式的資料亂碼
除錯步驟:
1.通過print(type(json_data))檢視資料的型別,
2.可以查出是str型別,就是說返回的字串中有bytes型別的資料
解決方案:把json字串轉換為字典
json_data = json.loads(json_data)
6.怎麼只輸出json資料的value或者某個key對應的value,不要[{}]
問題描述: 想要jsonkey/value的一部分
典型案例:
例如:
json_data=
{'errno': 0,
'data': [{'k': 'good',
'v': 'adj. 好的;'
},
{'k': 'good morning',
'v': 'int. 早安;'
}
]
}
要求: 只想要輸出good: adj. 好的,而不要其他的格式
1.可以通過json_data['data'],只輸出json資料json_data中‘data’對應的值,也就是
[{'k': 'good',
'v': 'adj. 好的;'
},
{'k': 'good morning',
'v': 'int. 早安;'
}
]
2.遍歷輸出每個'k'和'v'的值
# 遍歷輸出每個'k'和'v'的值
for item in json_data['data']:
print(item['k'], ": ", item['v'])
7.返回的頁面是一個連結,而不是連結的頁面
問題描述: 百度搜尋,我們輸入搜尋內容,返回的是一個包括原地址連結的html,而不是訪問該連結 的html,且返回的html中:location.replace(location.href.replace("https://","http://"));
問題例項截圖:
解決方案: 如果使用的是http改成https,
如果使用的是https改成http,就可以了
我的爬蟲筆記
- Python爬蟲教程-01-爬蟲介紹
- Python爬蟲教程-02-使用urlopen
- Python爬蟲教程-03-使用 chardet 檢測編碼
- Python爬蟲教程-04-response簡介
- Python爬蟲教程-05-python爬蟲實現百度翻譯
- Python爬蟲教程-06-爬蟲實現百度翻譯(requests)
- Python爬蟲教程-07-post介紹(百度翻譯)(上)
- Python爬蟲教程-08-post介紹(百度翻譯)(下)
- Python爬蟲教程-09-error 模組
- Python爬蟲教程-10-UserAgent和常見瀏覽器UA值
- Python爬蟲教程-11-proxy代理IP,隱藏地址(貓眼電影)
- Python爬蟲教程-12-爬蟲使用cookie爬取登入後的頁面(人人網)(上)
- Python爬蟲教程-13-爬蟲使用cookie爬取登入後的頁面(人人網)(下)
- Python爬蟲教程-14-爬蟲使用filecookiejar儲存cookie檔案(人人網)
- Python爬蟲教程-15-讀取cookie(人人網)和SSL(12306官網)
- Python爬蟲教程-16-破解js加密例項(有道線上翻譯)
- Python爬蟲教程-17-ajax爬取例項(豆瓣電影)
- Python爬蟲教程-18-頁面解析和資料提取
- Python爬蟲教程-19-資料提取-正規表示式(re)
- Python爬蟲教程-20-xml簡介
- Python爬蟲教程-21-xpath
- Python爬蟲教程-22-lxml-etree和xpath配合使用
- Python爬蟲教程-23-資料提取-BeautifulSoup4(一)
- Python爬蟲教程-24-資料提取-BeautifulSoup4(二)
- Python爬蟲教程-25-資料提取-BeautifulSoup4(三)
- Python爬蟲教程-26-Selenium + PhantomJS
- Python爬蟲教程-27-Selenium Chrome版本與chromedriver相容版本對照表
- Python爬蟲教程-28-Selenium 操縱 Chrome
- Python爬蟲教程-29-驗證碼識別-Tesseract-OCR
- Python爬蟲教程-30-Scrapy 爬蟲框架介紹
- Python爬蟲教程-31-建立 Scrapy 爬蟲框架專案
- Python爬蟲教程-32-Scrapy 爬蟲框架專案 Settings.py 介紹
- Python爬蟲教程-33-scrapy shell 的使用
- Python爬蟲教程-34-分散式爬蟲介紹
- 本筆記不允許任何個人和組織轉載