只创建一个HelloWorld程序实在是体现不出python的强大来,而且很无趣,但谁让它有名气呢

听说Python对采集的支持非常强大,搞个采集项目吧

采集需要注意的点:

1、采集的内容源要合法,对方让采集才能去采集

2、采集来的内容,要用在合法的地方

3、采集效率要高一些,要不数据太多的话,得采集到什么时候去

4、采集不能让对方反感,不然就给封了

前面两点靠个人本心了,一般遵纪守法的公民都没啥问题

第三点需要用到多进程和多线程

第四点涉及到反爬虫,需要考虑的多一些

先来个简单点的吧,采集一个网站的页面,最简单的貌似就是获取IP地址了,而获取ip最简单的网站就是http://icanhazip.com,也可以自己建一个,不过需要自己先有台服务器

python如何获取本地连接ip6地址 python获取当前ip_python

        哎呀,有错误~~~,这是因为requests包没有,需要安装

        好吧,装吧

        如果配置过eclipse的cmd终端的话,可以直接运行终端进行模块安装

        运行方法为:Run -> External Tools -> Python3_CMD

python如何获取本地连接ip6地址 python获取当前ip_python如何获取本地连接ip6地址_02

         启动终端后,直接输入pip3 install requests --upgrade即可 

python如何获取本地连接ip6地址 python获取当前ip_python如何获取本地连接ip6地址_03

        好了,requests模块就安装好了,以后也可以在这个终端下安装其他python包了

看看代码里面还报错吗

python如何获取本地连接ip6地址 python获取当前ip_字符串_04

好了,不报错的,说明模块安装成功

继续写代码

import requests


url = "http://icanhazip.com"
response = requests.get(url)

if response.status_code == 200:
    ip = response.text.replace('\n', '').replace('\r', '')
response.close()

print(ip)

python如何获取本地连接ip6地址 python获取当前ip_python_05

运行后终端打印出获取的ip地址了,就是本机的公网ip

第一个简单的抓取操作顺利完成

Python的采集可以使用很多种库,比如urllib3,requests,socket等等,但是强烈建议使用requests库,感觉更方便一些

requests对象的get和post方法都会返回一个Response对象,这个对象里面存的是服务器返回的所有信息,包括响应头,响应状态码等。其中返回的网页部分会存在.content和.text两个对象中

两者区别在于,content中存的是字节码,而text中存的是Beautifulsoup根据猜测的编码方式将content内容编码成字符串。简而言之,.text是现成的字符串,.content还要编码。

假如采集过来的内容显示乱码的话,用.text就不方便了,就需要用.content进行手动编码,使用.content.decode('utf-8')把抓取的内容编码为utf-8格式。

中文常用的是utf-8、GBK、GB2312等编码格式

仅仅是这样做虽然是可以采集到对方网站数据,但还是不够的,对方会一眼看出这是用程序访问而不是用户访问,因此还需要伪装一下。