欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python爬虫爬取数据遇到的问题

程序员文章站 2022-06-23 18:12:03
...

自学爬虫中遇到的一点问题和部分解决方法

本人大一新手,学python两个月,目前都是在网上找爬虫教学尝试自学(最初的目的是爬美女图片)

最开始接触爬虫的时候是一个前辈给我的代码和一个api的网站聚合数据

感觉这个网站还是很友好的python爬虫爬取数据遇到的问题
废话不多说,直接说问题,上代码

import urllib.request  # 网页请求
import urllib.parse     # url的解析,合并,编码,解码
import json
txt = input("请输入成语:")
chengyu =  urllib.parse.quote(txt)  # 把中文编码
# 地址 加工
url = '聚合数据返回的api'
a = urllib.request.urlopen(url) # 请求
ys = a.read().decode('utf-8')   # 读取并编码
zd = json.loads(ys)# 以JSON格式转换成字典
print(zd['result']['chengyujs'])
print(zd)

这个代码我仅在聚合数据提供的api中使用过,对其他的网页好像是用不了的

python爬虫爬取数据遇到的问题
代码中的需要填的api应该使用请求地址请求参数组合使用,中间用?隔开

但是只能使用别人提供的api就违背的我的目的呀(美女美女!!

所以又在CSDN中找到一个超详细的爬虫新手教程

参照这个爬取到了百度贴吧和国外的一个图片网站

import requests
a = requests.get(url="https://stocksnap.io/")

print(a)

一开始爬取图片网站的时候返回<Response [200]>

然后通过百度查到了解决方法

import requests
a = requests.get(url="https://stocksnap.io/")
a.text
print(a)

问题就完美的解决了,运行结果为:python爬虫爬取数据遇到的问题
但是又有了一些问题:

为什么加个text就可以成功访问,一开始还以为是没有加浏览头的问题

爬取出来的网页数据怎么把其中的图片和视频链接(src)提取出来

为了避免和我一样的新手走不必要的弯路,说一下一些词汇的意思吧

url : 网页地址,就是浏览器上面的地址栏,复制就行

headers : 请求头,浏览器头,随便怎么叫,有些网页不让我们直接爬取他们的数据,所以加了反爬虫的代码,请求头就是为了模拟浏览器访问

爬取出来的数据应该都是str形式的,所以可以通过最上面的代码用json模块转码为字典形式来方便分割

有用的话收藏一下吧!!!为了美女!!!