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-分布式爬蟲介紹
- 本筆記不允許任何個人和組織轉載
