华为网站建设的目标是否明确,厦门高端网站建设定制,网站做的一样算不算侵权,同城装修网自动爬取网页数据
正常情况下是我们使用浏览器输入指定url#xff0c;对服务器发送访问请求#xff0c;服务器返回请求信息#xff0c;浏览器进行解析为我们看到的界面#xff0c;爬虫就是使用python脚本取代正常的浏览器#xff0c;获取相应服务器的返回请求信息#x…自动爬取网页数据
正常情况下是我们使用浏览器输入指定url对服务器发送访问请求服务器返回请求信息浏览器进行解析为我们看到的界面爬虫就是使用python脚本取代正常的浏览器获取相应服务器的返回请求信息并配合python强大的库进行解析分析能够快速高效地帮助我们进行大数据分析。
不需要登录即可返回请求
以爬取虎牙交友频道每个直播封面图片为例 请求服务器 url https://www.huya.com/g/4079result requests.get(urlurl).text其实就是与cmd命令的 curl url一样他们两个的返回是一样的都是返回请求网页的源代码 curl url的返回太长可以直接保存到文件中方便比较 curl https://www.huya.com/g/4079 C:\Users\72403\Desktop\py\cmdRes.txt 在网站源码内筛选我们需要的数据这里用到xpath 我们可以在网站要爬取的内容右键选检查就会看到对应内容的标签等信息 data etree.HTML(result)imgs data.xpath(//img[classpic])保存数据 for img in imgs:imgUrl img.xpath(./data-original)[0]imgName img.xpath(./alt)[0]request.urlretrieve(imgUrl, rC:/Users/72403/Pictures/video/huya/ imgName .jpg)都被爬到了本地 需要登录才可返回请求
有的网站访客请求不能成功返回请求这里以小b站为例
其他的都是一样的就是要加上一个cookie来告诉服务端我不是访客我是你们尊贵的vip用户快给我返回请求
获取自己已经登录账户的cookie 打开小b站登录 按下F12进入调试窗口 选中网络 按下 altr 刷新界面 滑动到界面的最上方找到www.bilibili.com这条 cookie就在图下方所示位置
请求的时候请求头加上cookie
headers {# 假装自己是浏览器User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/73.0.3683.75 Chrome/73.0.3683.75 Safari/537.36,# 把你刚刚拿到的Cookie塞进来Cookie:把上一步得到的Cookie复制到此处
}
session requests.Session()
result session.get(https://www.bilibili.com, headersheaders).text完整代码
headers {# 假装自己是浏览器User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/73.0.3683.75 Chrome/73.0.3683.75 Safari/537.36,# 把你刚刚拿到的Cookie塞进来Cookie:把上一步得到的Cookie复制到此处
}
if __name__ __main__:url https://www.bilibili.comsession requests.Session()result session.get(https://www.bilibili.com, headersheaders).text#result requests.get(urlurl).textdata etree.HTML(result)imgs data.xpath(//img)for img in imgs:imgUrl img.xpath(./src)[0]imgName img.xpath(./alt)[0]print(imgName:imgUrl)# 会出现有的图片路径不带https加下面的判断if imgUrl.find(https://) !-1:request.urlretrieve(imgUrl, rC:/Users/72403/Pictures/video/bilibili/ imgName .jpg)else:request.urlretrieve(https:imgUrl, rC:/Users/72403/Pictures/video/bilibili/ imgName .jpg)print({%s}下载完毕! % imgName)