爬虫的基本流程
1:发起请求
通过HTTP库向目标站点发起请求,即发送一个request,请求可以包含额外的headers等信息等待服务器的响应
2: 获取响应的内容
如果服务器能响应,会得到一个response,Response的内容便是所要获得的野,页面的内容,类型有
可能有HTML,Json字符串,二进制数据(如图片视频)等类型
3:解析内容
得到的内容可能是HTML,可以是正则表达式,网页解析库进行解析。可能是二进制数据,可以做保存或进一步的处理
4:保存数据
保存形式多样,可以存为文本,也可以保存至数据库,或者保存特定的格式的文件。
Request
请求方式
主要有GET,POST两种类型,另外还有HEAD,PUT,DELETE,OPTIONS等。
请求URL
URL全称统一定位符,如一个网页文档,一张图片,一个视频都可以用URL 唯一莱确定。
请求头
包含请求时头部信息,如User-Agent,Host,Cookies等信息。
请求体
请求时额外携带的数据如表单交时的表单数据
Response
1: 响应状态 (status code)
有多种响应状态,如200代表成功,301跳转,404找不到页面,502服务器错误
2: 响应头(reponse headers)
如内容类型,内容长度,服务信息,设置Cookie等等
3: 响应体
主要的部分,包含了请求资源的内容,如网页HTML,图片二进制数据等。
>>>import requests
>>>response = requests.get('http://www.baidu.com')
>>>print(response.text) #打印出响应头
>>>print(response.status_code) #打印出状态码
>>>response = requests.get('http://www.baidu.com/img/baidu_jgylogo3.gif') #吧百度的图片抓取
>>>print(response.content) #输出图片的二进制格式
>>>with open('/var/tem/1.gif ','wb') as f:
...f.write(response.content)
...f.close()
705
>>>
总结
爬虫能抓怎么样的信息 :
1)网页文本,如HTML,Json格式文本
2)图片,获取到的是二进制文件,保存为图片格式
3)视频,同为二进制文件,保存微视频格式即可
4)其他,只要能请求到的,都能获取。
解析的方式
1)直接处理
2)Json解析
3)正则表达式
4)BeautifulSoup的解析库莱解析
5)pyQuery
6) XPath
>>>from selenium import webdriver
>>>driver = webdriver.Chrome()
>>>driver.get('http://m.weibo.com')
>>>driver.get('http://www.zhihu.com')
>>>print(driver.page_source)
>>>driver.get('www.taobao.com')
(请尊重知识,转摘需经本人许可,并请注明出处)