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

Python基础学习 收藏
0 103

最近在入门爬虫,索性将每次所学记录于此,及时复习并分享小白的学习之路。(本人所写博客仅供本人及时复习以及方便同行者查阅,在此特别鸣谢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)

#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.拉钩爬取 定制请求头反爬虫技术 (只能爬取拉钩的表面网页)

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.拉钩深度爬取

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"))


#由于拉钩反爬虫机制的持续更新,爬取拉勾网方法有变,容易失败,而对于一般网页的爬取则比较简单。






版权声明:本文为「slow.ver」的原创文章,遵循 CC 4.0 BY-SA 版权协议
原文链接:https://blog.csdn.net/dinnersize/article/details/104259305



    暂时没有人评论
0