1.0 join()函数
语法: 'sep'.join(seq) 参数说明 sep:分隔符。可以为空 seq:要连接的元素序列、字符串、元组、字典 上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串
返回值:返回一个以分隔符sep连接各个元素后生成的字符串
>>> lt=['abc',"def","-good"]
>>> pt="".join(lt)
>>> pt
'abcdef-good'
>>> at=" ".join(lt)
>>> at
'abc def -good'
>>> tp=("a","b","d")
>>> t="".join(tp)
>>> t
'abd'
拆分函数。
Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则仅分隔 num 个子字符串
语法 split() 方法语法: str.split(str="", num=string.count(str)). 参数 str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。 num -- 分割次数。
1.0 User-Agent机制 通过游览器的开发者工具中看到,每次进行http访问时,它的请求头里都有User-Agent这个参数,列如: user-agent指的是访问网站时的用户代理,简单的说,它指的是你的访问终端,即游览器、硬件平台、系统软件的相关信息。 现在很多网站为了防爬虫,都会对user-agent这个参数进行检测,我们在爬数据时尽量把这个参数带上。
在爬取数据时也可以合理地切换不同的user-agent来营造新的客户机环境,降低被侦测的几率,提升其并发抓取数据的能力。特别是对应单点式登录时,使你在同台服务器上提升数据并发爬取的能力(即模拟多个用户登录)。(属个人意见,请大家指教)
2.0 Referer机制
每次进行http访问时,它的请求头里经常会包含referer这个参数 referer翻译成中文是“引用”的意思,在http头里指代的是引用站点,即访问该链接的前一个访问的链接,告诉该链接他是从哪里跳转过来的。 为了反爬虫,部分网站或接口都对referer做了监控,如淘宝等网站。无referer或假referer都被认定为非法访问。这时候就需要我们用游览器开发者工具去跟踪一下该链接访问流程,从而提取出对应的referer加到请求头中,来实现数据爬取。
3.0 cookie 这可是重点啊,cookie在我们的web应用中,常常用来辨别用户身份、进行session跟踪等功能,也起到了反爬虫作用。以下我会简述我在实践中所遇到的cookie反爬虫机制和一些对策。(如有问题请及时提出,谢谢) 身份验证 很多网站的数据都是需要你登录后才能进行数据爬取,而用户的登录状态则是记录在cookie中,大部分的网站都是把sessionId作为key放在cookie中,来跟踪用户。这个时候我们就需要去模拟用户的登录来获取对应的cookie。 模拟登陆是关键点也是个大难点,只要你成功实现模拟登陆,后面的数据爬取都将不是问题。这里我就拿比较普通的网站来举例子: 首先是打开游览器开发者工具,先人工尝试一遍登录,细细观察整个流程确定需要哪些参数,需要注意cookie的变化。