1. 没有加 User-Agent头信息
一般web服务器都会检查 User-Agent 头信息,没有此信息,就不会返回
2. 没有加Host头信息
一般web服务器都会检查 Host 头信息,没有此信息,就不会返回
Host: www.sohu.com
3. 没有加cookie
有些网站有反爬虫处理,需要加上cookie,如:知乎
socket实现爬虫
socket实现爬虫,头信息末尾要加\r\n
用socket编程,实现爬虫,头信息末尾要加\r\n
client.send(b'GET / HTTP/1.1\r\n')
socket实现爬虫,头信息结束要加\r\n
用socket编程,实现爬虫,头信息结束后要有一个\r\n
client.send(b'GET / HTTP/1.1\r\n')
client.send(b'Host: www.sohu.com\r\n')
client.sendall(b'User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36\r\n')
# 最后要发送一个\r\n,表示头信息结束
client.send(b'\r\n')
解码成字符串时可能会发生错误
python不像java,在网络接收数据,解码成字符串时,有些无法正常解码成字符串,调用decode()方法时要加errors参数,忽略错误,如下:
content=data.decode('utf-8',errors='ignore')