python爬虫爬取数据遇到的问题
程序员文章站
2022-06-23 18:12:03
...
自学爬虫中遇到的一点问题和部分解决方法
本人大一新手,学python两个月,目前都是在网上找爬虫教学尝试自学(最初的目的是爬美女图片)
最开始接触爬虫的时候是一个前辈给我的代码和一个api的网站聚合数据
感觉这个网站还是很友好的
废话不多说,直接说问题,上代码
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中使用过,对其他的网页好像是用不了的
代码中的需要填的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)
问题就完美的解决了,运行结果为:
但是又有了一些问题:
为什么加个text就可以成功访问,一开始还以为是没有加浏览头的问题
爬取出来的网页数据怎么把其中的图片和视频链接(src)提取出来
为了避免和我一样的新手走不必要的弯路,说一下一些词汇的意思吧
url : 网页地址,就是浏览器上面的地址栏,复制就行
headers : 请求头,浏览器头,随便怎么叫,有些网页不让我们直接爬取他们的数据,所以加了反爬虫的代码,请求头就是为了模拟浏览器访问
爬取出来的数据应该都是str形式的,所以可以通过最上面的代码用json模块转码为字典形式来方便分割
有用的话收藏一下吧!!!为了美女!!!