第一次尝试做爬虫!

今天尝试准备写个爬虫,在网上找了些图片网站,发现这个网站页面规则简单,就决定用他做处女作吧。该网站图片命名规则就是xxx1.jgp-xxx100.jpg:

import requests
import time
import os
from bs4 import BeautifulSoup
tp = 'E:\\tp'
if not os.path.exists(tp):
    os.mkdir(tp)

headers = {'User-Agent':' Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'}
for h in range(1,100):          
    if h <10:
        h = str('00') + str(h)
    else:
        h = str('0') + str(h)
    resp = requests.get('http://img.ivsky.com/img/bizhi/pre/201910/08/zhaoze-'+str(h)+'.jpg',headers)
    if resp.status_code != 200:
        break
    #状态码非200时结束循环
    time_file = int(time.time())
    #加入时间戳
    with open('E:\\tp\\'+str(h)+'_'+str(time_file)+'.jpg','wb') as f:
        f.write(resp.content)
    time.sleep(3)
    
    print('下载完毕,第 %d 张图片' % int(h))
)

Python爬虫中,如果你使用`requests`库访问网页并且发现后续请求的数据并不完整,这通常是因为浏览器会有一些机制(如缓存、Cookie、session管理等)来优化性能,导致`requests`默认的行为并未模拟完整的浏览器行为。 为了解决这个问题,你可以尝试以下几个步骤: 1. **禁用或清除浏览器缓存**:有些网站会对特定用户设置缓存策略,使得每次请求返回的是已存储的数据而不是实时更新的内容。在`requests`中,虽然没有直接设置禁止缓存的功能,但可以指定发送`Cache-Control`头部为`no-cache`,或者让程序每次运行都从头开始抓取。 ```python import requests response = requests.get('http://example.com', headers={'Cache-Control': 'no-cache'}) ``` 2. **处理cookies**:某些网站会通过cookies保持用户状态,需要在请求中带上cookie信息。可以使用`requests.cookies.RequestsCookieJar`来管理cookies。 ```python jar = requests.cookies.RequestsCookieJar() # 如果有已经获取到的cookie,这里添加 jar.set('your_cookie_key', 'your_cookie_value') response = requests.get('http://example.com', cookies=jar) ``` 3. **模拟浏览器**:可以使用`Session`对象,它会维护连接状态并自动处理cookies。创建一个新的`Session`实例,并在其中发送请求。 ```python session = requests.Session() response = session.get('http://example.com') ``` 4. **设置User-Agent**:有些网站会检查User-Agent来识别是否为爬虫,设置合理的User-Agent可以帮助你避免被封IP。 ```python headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} response = requests.get('http://example.com', headers=headers) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值