[python爬虫之路day1] 爬虫初入门之源码爬取

最近在入门爬虫,索性将每次所学记录于此,及时复习并分享小白的学习之路。(本人所写博客仅供本人及时复习以及方便同行者查阅,在此特别鸣谢B站up主“神奇的老黄”所提供的学习视频,本文末尾附上视频连接)
from urllib import request
from urllib import parse
urllib是爬虫中所用较经常使用的一个库,能够调用其中的request,parse函数进行爬虫初入门。
#1.爬取网页源代码
resp=request.urlopen(“http://www.baidu.com”) #爬取网页源代码
print(resp.read())
#2.下载到文件
2.request.urlretrieve(“http://www.baidu.com/”,r"C:\folders\技术之路\baidu.html") #下载到文件
# 3.汉字转二进制
3.mydic={“sex”:“男”,“school”:“深圳大学”,“nianji”:“大 二”}
result=parse.urlencode(mydic)
print(result)# 汉字转二进制
3的例子
url=“https://www.baidu.com/s”* #原网站是https://www.baidu.com/s?wd=李佳航,因为爬取时没法识别,故需转二进制*
params={“wd”:“李佳航”}
qs = parse.urlencode(params)
print(qs)
url=url+"?"+qs
resp=request.urlopen(url)
print(resp.read())
4.二进制解码汉字
#4.解码
mydic={“sex”:“男”,“school”:“深圳大学”,“nianji”:“大 二”}
result=parse.urlencode(mydic)
print(result) #编码
qs=parse.parse_qs(result) #解码
print(qs)html

#5.网站分解
parse.urlpares parse.urlsplit (没有params)
url=“http://baidu.com/s?wd=python&username=abc#1”
result=parse.urlparse(url)
print(result)
print(“scheme:”,result.scheme)
print(“netloc:”,result.netloc)
print(“path:”,result.path)
print(“params:”,result.params)
print(“query:”,result.query)
print(“fragment:”,result.fragment)
result=parse.urlsplit(url)
print(result)
#6.拉钩爬取 定制请求头反爬虫技术 (只能爬取拉钩的表面网页)python

req=request.Request(url,headers=headers)
url="https://www.lagou.com/jobs/list_python%E7%88%AC%E8%99%AB/p-city_215?&cl=false&fromSearch=true&labelWords=&suginput="
headers={ 
 
  "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36"}
req=request.Request(url,headers=headers)
resp=request.urlopen(req)
print(resp.read())'''

#7.拉钩深度爬取web

url="https://www.lagou.com/jobs/positionAjax.json?city=%E6%B7%B1%E5%9C%B3&needAddtionalResult=false"
headers={ 
 
  "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36",
         "Referer": "https: // www.lagou.com / jobs / list_python % E7 % 88 % AC % E8 % 99 % AB / p - city_215? & cl = false & fromSearch = true & labelWords = & suginput =",
"Host": "www.lagou.com",
"Origin": "https: // www.lagou.com",
"Pragma": "no - cache",
}
data={ 
 
  
    "first": "true",
    "pn":"1",
    "kd": "python爬虫",
}
req=request.Request(url,headers=headers,data=parse.urlencode(data).encode("utf-8"),method="POST")
resp=request.urlopen(req)
print(resp.read().decode("utf-8"))

#因为拉钩反爬虫机制的持续更新,爬取拉勾网方法有变,容易失败,而对于通常网页的爬取则比较简单。
总结day1:
爬虫初入门学习了初步的爬取网页,后续爬取更加精准的目标还需持续学习,且会不断分享于个人博客。json

欢迎小伙伴在阅读本系列博客时并搭配视频学习,你们共同进步。https://www.bilibili.com/video/av44518113?p=23c#