写爬虫时候记录的一些记录和框架

爬虫代码获取URL状态码基本框架:

import requests
def getHTMLText(url):
      try:
           r=requests.get(url,timeout=30)
           r.raise_for_status() #如果状态码不是200,引发HTTPError异常
           return r.text
      except:
             return"产生异常"

if __name__=="__main__"
    url=“http://www.baidu.com”
    print(getHTMLText(url))

二进制文件存储的基本路径框架:
import requests
import os
url="xxxxx"
root="D://pics//"
path=root+url.split('/')[-1]
try:
    if not os.path.exists(root):
         os.mkdir(root)
    if not os.path.exists(path):
         r=requests.get(url)
         with open( path,'wb') as f:
               f.write(r.content)
               f.close()
               print("文件保存成功")
    else:
          print("文件已存在")
except:
       print("文件保存失败")
       写入空文件:
f_path=r'C:\Users\LPH\Desktop\my.txt'
with open(f_path,'w') as f:
    f.write('I love programming!')

实参‘w’告诉python以写入模式打开文件。打开文件时,可以指定读取方式(‘r’:读取 ‘w’:写入 ‘a’ 附加 ‘r+’ 读取和写入 )默认为只读模式。
若写入的文件不存在,函数open()将自动创建。以写入模式打开文件时,注意如果文件已存在,python将在返回文件对象前清空文件。若不想清空,可以以追加的方式创建。python只将字符串写入文本文件。要将数值数据存储到文本文件中,必须先使用函数str()将其转换为字符串格式。读出的也是字符串.
关于IP的爬取和使用,代理IP的使用在Urllib和Request两个库中规则也有一些不同,因此使用时应当加以辨别,代理IP的使用方式多种,可以爬取国内代理IP网址,也可以爬取端口等(目前不熟悉),但是代理IP爬取后最好进行验证,否则在使用过程中可能出现无效的情况。

TXT文本的使用与二进制文件有一些不用,’a’和’w’都为写入,但是’a’不会覆盖掉原本已经存在的信息。这一点非常重要。

当我们打开TXT文件时,比如ips=open(path,’r’),ip=ips.readlins()这时候获得的是一个列表,而若该列表是以readlines读取的,在读取时将会包含换行符,这将会影响读取信息操作,可用For循环遍历并用strip()函数将换行符去掉。
URL构造循环简化版:start_url=[‘https://www.xicidaili.com/nn/{}’.format(str(i)) for i in range(1,20)]
从列表中随机抽取一个元素的方法,首先引入
From random import choice, S=choice(列表)即可

Python中的字典和json有一些不同,字典为单引号,简单来说js是一种存储数据的格式
另外Requests构造中数据请求为params,输入错误无法进行。

正则表达式库是python中自带的,能够随时调用,而BeautifulSoup和Xpath库则是第三方库,通过学习爬虫,反而我对于解释型语言以及HTML文本编辑有了比较初步的认识。
所谓网络爬虫,大部分是通过解释HTML格式中所包含的链接,文本,从而获取相应信息的技术。

BeautifulSoup库,我个人使用的话我认为是比较全面的一个解析方式,解析HTML比较全面,但是逻辑不够清晰,搜索信息方式比较广泛,而且Xpath,比较注重逻辑,比如逐行逐个遍历节点,速度较快。

正则表达式库我认为相比于上述两个库最大的优点是,能够运用自定义格式获取自己想要的信息,非常灵活.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值