python网络爬虫与信息提取 学习笔记day2

news/2024/7/19 11:11:30 标签: 爬虫, python

Day2:

查看robots协议:

查看京东的robots协议

 

查看百度的robots协议,可以看到百度拒绝了搜狗的爬虫233


爬取京东商品页面相关信息:

 

import requests
url = "https://item.jd.hk/1974631870.html"
try:
    r = requests.get(url)
    r.raise_for_status()
    r.encoding = r.apparent_encoding
    print(r.text[:1000])
except:
    print("产生异常")

 

 

爬取亚马逊商品页面相关信息:

由于亚马逊拒绝爬虫访问,所以需要更改header的值,将python伪装成浏览器访问

 

import requests
url = "https://www.amazon.cn/dp/B0186FESGW/ref=fs_kin"
try:
    kv = { 'user-agent':'Mozilla/5.0'}
    r = requests.get(url,headers = kv)
    r.status_code
    r.raise_for_status()
    r.encoding = r.apparent_encoding
    print(r.text[:1000])
except:
    print("产生异常")

 

 

爬取百度关键词查询结果 :    本例关键词为python

 

 1 import requests
 2 keyword = "python"
 3 try:
 4     kv = {'wd':keyword}
 5     r = requests.get("http://www.baidu.com/s",params=kv)
 6     print(r.request.url)
 7     r.raise_for_status()
 8     print(len(r.text))
 9     
10 except:
11     print("爬取失败")

 

 

网络图片,视频等二进制文件的爬取和保存:

 

import requests
import os

url = "http://image.nationalgeographic.com.cn/2017/0819/20170819021922613.jpg"
root = "f://pics//"
path = root + url.split('/')[-1]
try:
    if not os.path.exists(root):    #处理根目录是否存在问题
        os.mkdir(root)
    if not os.path.exists(path):    #处理文件是否存在问题
        kv = { 'user-agent':'Mozilla/5.0'}
        r = requests.get(url,headers = kv)
       
        r.status_code
        with open(path,'wb') as f:
            f.write(r.content)#r.content为二进制形式
            f.close()
            print("文件保存成功")
    else:
        print("文件已存在")
except:
    print("爬取失败")

 

Ip地址归属地的查询:

import requests
url = "http://m.ip138.com/ip.asp?ip="
try:
    r=requests.get(url+'202.204.80.112')
    r.raise_for_status()
    r.encoding = r.apparent_encoding
    print(r.text[-500:])
except:
    print("爬取失败")
    

 

 

转载于:https://www.cnblogs.com/yezhaodan/p/7419284.html


http://www.niftyadmin.cn/n/1089799.html

相关文章

CSS3弹性盒模型flexbox布局

属性介绍 display: flex | inline-flex; (适用于父类容器元素上) 定义一个flex容器,内联或者根据指定的值,来作用于下面的子类容器。 box:将对象作为弹性伸缩盒显示。(伸缩盒最老版本)(css3)inl…

poj3069 Saruman's Army

//贪心 #include <iostream> #include <algorithm> using namespace std; int N, R; const int MAX_N 1005; int X[MAX_N];void solve() {sort(X, X N);int i 0, ans 0;while (i < N){// s是没有被覆盖的最左的点的位置int s X[i];// 一直向右移动直到距s…

前端学习(二十二)css3(笔记)

html5 普通&#xff1a; header section footer nav article aside figure 特殊&#xff1a; canvas video audio(controls控制台) 表单&#xff1a; type time color range number 自动…

面向对象编程思想-访问者模式

一、引言 上篇博客中与大家分享了责任链模式&#xff0c;责任链模式主要应用于系统中某个功能需要多个参与者完成的场景&#xff0c;今天将分享我对访问者模式的理解 二、访问者模式 定义&#xff1a;表示一个作用于某对象结构中的各元素的操作&#xff0c;它使你可以在不改变各…

bzoj 3236: 洛谷 P4396: [AHOI2013]作业 (莫队, 分块)

题目传送门&#xff1a;洛谷P4396。 题意简述&#xff1a; 给定一个长度为\(n\)的数列。有\(m\)次询问&#xff0c;每次询问区间\([l,r]\)中数值在\([a,b]\)之间的数的个数&#xff0c;和数值在\([a,b]\)之间的不同的数的个数。 题解&#xff1a; 第一问可以用主席树维护&#…

loadrunner中如何将MD5加密的值转换为大写

上篇博客中写过如何将MD5加密&#xff0c;但是我们在实际的测试过程中可能需要将加密的结果进行大小写转换。我在这次的测试过程中就遇见了这样的问题&#xff0c; 我在测试时发现开发人员代码传的sign值是大写&#xff0c;而我加密出来的sign是小写&#xff0c;如果按照我现在…

BZOJ2553 Beijing2011禁忌(AC自动机+动态规划+矩阵快速幂+概率期望)

考虑对一个串如何分割能取得最大值。那么这是一个经典的线段覆盖问题&#xff0c;显然每次取右端点尽量靠前的串。于是可以把串放在AC自动机上跑&#xff0c;找到一个合法串后就记录并跳到根。 然后考虑dp。设f[i][j]表示前i位走到AC自动机上j节点的概率&#xff0c;枚举下个字…

Autofac的基本使用---5、常用配置

Autofac的基本使用---目录 一、创建实例方法 参考&#xff1a;http://www.cnblogs.com/manglu/p/4115128.html 1、InstancePerDependency 对每一个依赖或每一次调用创建一个新的唯一的实例。这也是默认的创建实例的方式。 官方文档解释&#xff1a;Configure the component so …