初学python

简单爬虫架构:URL管理器,网页下载器,网页解析器。

一、URL管理器

主要实现方法:
这里写图片描述

二、网页下载器urllib

1、最简单

urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)

  • url: 需要打开的网址

  • data:Post提交的数据

  • timeout:设置网站的访问超时时间

import urllib.request
response = urllib.request.urlopen('http://www.baidu.com')
html = response.read()
print(html)

2、使用Requeest

urllib.request.Request(url, data=None, headers={}, method=None)

import urllib.request
req = urllib.request.Request('http://www.baidu.com')
response = urllib.request.urlopen(req)
html = response.read()
print(html)

需要加headers

import urllib.request
import urllib.parse

url = r'http://www.lagou.com/jobs/positionAjax.json?'
headers = {
     'User-Agent': r'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) '
                    r'Chrome/45.0.2454.85 Safari/537.36 115Browser/6.0.3',
      'Referer': r'http://www.lagou.com/zhaopin/Python/?labelWords=label',
      'Connection': 'keep-alive'
  }
req = urllib.request.Request(url, headers=headers)
page = urllib.request.urlopen(req).read()
page = page.decode('utf-8')
print(page)

用来包装头部的数据:

  • User-Agent :这个头部可以携带如下几条信息:浏览器名和版本号、操作系统名和版本号、默认语言

  • Referer:可以用来防止盗链,有一些网站图片显示来源http://*.com,就是检查Referer来鉴定的

  • Connection:表示连接状态,记录Session的状态。

需要POST数据
urllib.request.urlopen(url, data=None, [timeout, ]*, cafile=None, capath=None, cadefault=False, context=None)
经过urlencode()转换后的data数据为?first=true?pn=1?kd=Python,最后提交的url为

http://www.lagou.com/jobs/positionAjax.json?first=true?pn=1?kd=Python

import urllib.request
import urllib.parse

url = r'http://www.lagou.com/jobs/positionAjax.json?'
headers = {
     'User-Agent': r'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) '
                    r'Chrome/45.0.2454.85 Safari/537.36 115Browser/6.0.3',
      'Referer': r'http://www.lagou.com/zhaopin/Python/?labelWords=label',
      'Connection': 'keep-alive'
  }
data = {
     'first': 'true',
     'pn': 1,
     'kd': 'Python'
 }
data = urllib.parse.urlencode(data).encode('utf-8')
req = urllib.request.Request(url, headers=headers, data=data)
page = urllib.request.urlopen(req).read()
page = page.decode('utf-8')
print(page)

使用代理

proxy = urllib.request.ProxyHandler({'http':'5.22.195.215:80'})
opener = urllib.request.build_opener(proxy)  #加载opener
urllib.request.install_opener(opener)        #安装opener
data = urllib.parse.urlencode(data).encode('utf-8')
page = opener.open(url,data).read()
print(page)

使用cookie

import urllib.request
import urllib.parse
import http.cookiejar

url = r'http://www.baidu.com'
cookie = http.cookiejar.CookieJar()
#声明一个CookieJar对象实例来保存cookie
handler = urllib.request.HTTPCookieProcessor(cookie)
#利用urllib库的HTTPCookieProcessor对象来创建cookie处理器
opener = urllib.request.build_opener(handler)
#加载opener
urllib.request.install_opener(opener)
#安装opener
response = opener.open(url)
#用带有cookie的urllib访问网页
page = response.read()
print(page)

三、网页解析器

主要是从网页中获取有价值的数据(有效数据和URL)。
最主要用到BeautifulSoup4
Beautiful Soup 是用Python写的一个HTML/XML的解析器,它可以很好的处理不规范标记并生成剖析树(parse tree)。 它提供简单又常用的导航(navigating),搜索以及修改剖析树的操作。它可以大大节省你的编程时间。
具体使用方法http://cuiqingcai.com/1319.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你刚开始学习Python,对于编辑器的选择可能是个考量。有几个常见的选择,其中一个是IDLE,它是Python自带的轻量级IDE,适合初学者使用。它的Python Shell可以提供交互式的编程环境,方便学习和实验。然而,IDLE的界面不够美观,功能也相对简单,所以如果你对界面和功能有更高的要求,你可以考虑使用其他编辑器,比如Visual Studio Code(VSCode)。 VSCode是一个功能强大且流行的文本编辑器,它支持多种编程语言,包括Python。你可以在VSCode上安装相应的插件,如Python - Visual Studio Marketplace,来增强Python开发的功能和体验。VSCode具有智能代码提示、调试功能、版本控制等特性,对于初学Python的人来说,它可以提供更好的学习和开发环境。 总结来说,如果你是初学Python并希望一个简单轻量级的IDE,IDLE是一个不错的选择。但如果你对界面和功能有更高的要求,可以尝试使用VSCode,并安装相应的插件来增强Python开发的体验。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [vscode+python+selenium环境配置](https://blog.csdn.net/github_35856054/article/details/121038108)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [VSCode配置Python教程](https://blog.csdn.net/Zhangguohao666/article/details/105040139)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值