爬虫常见错误

1. 没有加 User-Agent头信息

一般web服务器都会检查 User-Agent 头信息,没有此信息,就不会返回

2. 没有加Host头信息

一般web服务器都会检查 Host 头信息,没有此信息,就不会返回

Host: www.sohu.com

有些网站有反爬虫处理,需要加上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')

原文出处:/show_1EF3rdJSyLgy.html