爬虫练习题(三)
题目:网页"www.6pian.cn/xq.html"
1.需求爬取前六页的页面源码
2.保存
''' 1.分析网页: https://www.6pian.cn/ https://www.6pian.cn/xq.html https://www.6pian.cn/xq/1/0.html https://www.6pian.cn/xq/2/0.html https://www.6pian.cn/xq/3/0.html ''' import urllib.request start = int(input("请输入起始页")) end = int(input("请输入结束页")) headers = { 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.66 Safari/537.36 Edg/103.0.1264.44' } for n in range(start, end + 1): url = 'https://www.6pian.cn/xq/{}/0.html'.format(n) print(url) q = urllib.request.Request(url,headers=headers) response = urllib.request.urlopen(q) with open(f'第{n}页.html','w',encoding='utf-8')as f: f.write(response.read().decode('utf-8'))
首先,分析牛片网页链接,找到网页的规律,构建URL
每一个页面的网页链接都不一样,一定要谨慎仔细的检查,找到规律,分别用input导入起始页和终止页,并用变量接收,用headers伪装,在页面中有几点开检查,找到整个网页的包,点开后找到user agent,复制到headers里面,有的时候会需要复制cookie,但在这题不需要用到
输入循环保证一面爬完后,紧接着爬下一页,这样你的公式必须要写对,逻辑清楚才能写出正确答案,答案不能死,搬硬套,后面就是构建URL,把变量n传入,代替链接中的变量,使整个链接,满足所有页面链接,一旦爬取失败,你就要重新审视自己的构建,有没有出现问题?能不能满足其他页面的链接,后面最好是打印一下,你刚构建好的网址,确保无误后就可以实例化请对象,这里要看Request里面有哪几个变量并且传入用一个变量接收整个实例化过程
With open用来保存数据第二个引号中,w为写入如果不写默认为r为只读,转码时一定要注意看看他的编码类型输错了肯定会报错,这样你就可以在pycharm里得到六个页面的网页源码了。
User-Agent在这里:
整个页面的数据包: