python DEMO

'''
# demo1 GET
import urllib.request as request
# urlopen
response = request.urlopen(url)
#print(response.read().decode('utf-8')) #解码 如中文 下载页面则不需要解码
#print(type(response)) #类型
print(response.status)
print(response.getheaders())
print(response.getheader('Server'))
'''

''' demo2 POST
import urllib.parse
import urllib.request

data = bytes(urllib.parse.urlencode({'word':'hello'}),encoding='utf-8')
response = urllib.request.urlopen('http://httpbin.org/post',data=data,timeout=1)
print(response.read())
'''

''' 
# demo3
import socket
import urllib.request
import urllib.error

try:
    response = urllib.request.urlopen('http://httpbin.org/get', timeout=0.1)
except urllib.error.URLError as e:
    if isintance(e.reason,socket.timeout):
        print('Time Out')
'''

'''
# demo4
from urllib import request

url = r'https://www.python.org'#转义
req = request.Request(url) #此方法可自定义其它参数 可对反爬
response = request.urlopen(req)
print(response.read().decode('utf-8'))
'''
'''
# demo5
# get cookie
import http.cookiejar, urllib.request

cookie = http.cookiejar.CookieJar()
handler = urllib.request.HTTPCookieProcessor(cookie)
opener = urllib.request.build_opener(handler)
response = opener.open('http://www.baidu.com')
for item in cookie:
    print(item.name+"="+item.value)

'''

'''
# demo6 get cookie and save
import http.cookiejar, urllib.request
filename = 'cookie.txt'
cookie = http.cookiejar.MozillaCookieJar(filename)
handler = urllib.request.HTTPCookieProcessor(cookie)
opener = urllib.request.build_opener(handler)
response = opener.open('http://www.baidu.com')
cookie.save(ignore_discard=True, ignore_expires=True)
'''

'''
# demo7 get cookie and save
import http.cookiejar, urllib.request
filename = 'cookie.txt'
cookie = http.cookiejar.LWPCookieJar()
# 加载本地cookie
cookie.load(filename,ignore_discard=True, ignore_expires=True)
handler = urllib.request.HTTPCookieProcessor(cookie)
opener = urllib.request.build_opener(handler)
response = opener.open('http://www.baidu.com')
print(response.read().decode('utf-8'))
'''

'''
# demo8 user-agent
from urllib import request
import random
import re

url = r'http://www.baidu.com'
agent1 = 'a'
agent2 = 'b'
agent = [agent1,agent2]
header = {
    "user-agent": random.choice(agent)
}
#print(random.choice(agent))
req = request.Request(url,headers=header)
response = request.urlopen(req)
'''

''' 
#demo9 自定义 opener
from urllib import request
#构建HTTP处理对象专门HTTP请求
handler = request.HTTPHandler()
#创建自定义opener
opener = request.build_opener(handler)
#创建自定义对象
req = request.Request(url)

#发送请求获取响应
#reponse = opener.open(req).read().decode() #只能发一次请求

#设置全局opener 完成多次请求 用urlopen发送请求也可以自定义opener
request.install_opener(opener)

reponse = request.urlopen(req).read()
print(reponse)
'''

'''
#demo10 proxy
from urllib import request
import random

#多个代理IP及端口 免费/收费
proxylist = [
   {"http",ip1},
   {"http",ip2},
   {"http",ip...},
]

proxy = random.choice(proxylist)

#构建代理对象
handler = request.ProxyHandler(proxy)

#创建自定义opener
opener = request.build_opener(handler)

req = request.Request(url)

res = opener.open(req).read().decode()
'''

'''
#demo 11 GET请求
from urllib import request,parse

#分析网址传值 注意中文编码

wd = {"wd":"中文"}

#构造URL编码
wdd = parse.urlencode(wd)

url = "http://www.baidu.com/s?"+wdd

#同上
'''

 

'''
#requests 基本用法
import requests
#content二进制适合获取视频,图片 text字符串会中文乱码
response = requests.get('http://www.baidu.com').content.decode()
#与上同样
response = requests.request('get','http://www.baidu.com').content.decode()
print(response)
'''

'''
#传参
import requests
wd = {"wd":"中文"}
url = r'http://www.baidu.com/s?'

#伪浏览器
agent1 = 'a'
agent2 = 'b'
agent = [agent1,agent2]
header = {
    "user-agent": random.choice(agent)
}

#get params=wd 中文省转义
response = requests.get(url,params=wd,headers=header)

#post
formdata = {
    "":""
    ...
}
response = requests.post(url,headers=header,data=formdata)

print(response.json())

#多个代理IP及端口 免费/收费
proxylist = {
   "http",ip1,
   "https",ip2,
   "http",ip...
}
proxy = random.choice(proxylist)
#proxies 单个多个都行
response = requests.get(url,proxies=proxylist)
print(response)

'''

'''
#获取cookie
import requests
req = requests.get("http://www.baidu.com")
#获取返回cookiejar对象
cookiejar = req.cookies
#将cookiejar转成字典
cookiedict = requests.utils.dict_from_cookiejar(cookiejar)
print(cookiedict)
'''

'''
#session 模拟登录
import requests

header = {
    "user-agent": "xxx"
}
ses = requests.session()
data = {"user":"xxx","pwd":"xxx"}
#获取COOKIE
ses.post(url,data=data)
#请求页面
response = ses.get(newurl)
print(response)
'''
文件: import scrapy from demo1.items import Demo1Item import urllib from scrapy import log # BOSS直聘网站爬虫职位 class DemoSpider(scrapy.Spider): # 爬虫名, 启动爬虫时需要的参数*必填 name = 'demo' # 爬取域范围,允许爬虫在这个域名下进行爬取(可选) allowed_domains = ['zhipin.com'] # 爬虫需要的url start_urls = ['https://www.zhipin.com/c101280600/h_101280600/?query=测试'] def parse(self, response): node_list = response.xpath("//div[@class='job-primary']") # 用来存储所有的item字段 # items = [] for node in node_list: item = Demo1Item() # extract() 将xpath对象转换为Unicode字符串 href = node.xpath("./div[@class='info-primary']//a/@href").extract() job_title = node.xpath("./div[@class='info-primary']//a/div[@class='job-title']/text()").extract() salary = node.xpath("./div[@class='info-primary']//a/span/text()").extract() working_place = node.xpath("./div[@class='info-primary']/p/text()").extract() company_name = node.xpath("./div[@class='info-company']//a/text()").extract() item['href'] = href[0] item['job_title'] = job_title[0] item['sa 报错: C:\Users\xieqianyun\AppData\Local\Programs\Python\Python36\python.exe "C:\Users\xieqianyun\PyCharm Community Edition 2019.2.5\helpers\pydev\pydevconsole.py" --mode=client --port=55825 import sys; print('Python %s on %s' % (sys.version, sys.platform)) sys.path.extend(['C:\\Users\\xieqianyun\\demo1', 'C:/Users/xieqianyun/demo1']) Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] Type 'copyright', 'credits' or 'license' for more information IPython 7.10.0 -- An enhanced Interactive Python. Type '?' for help. PyDev console: using IPython 7.10.0 Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] on win32 runfile('C:/Users/xieqianyun/demo1/demo1/begin.py', wdir='C:/Users/xieqianyun/demo1/demo1') Traceback (most recent call last): File "C:\Users\xieqianyun\AppData\Local\Programs\Python\Python36\lib\site-packages\IPython\core\interactiveshell.py", line 3319, in run_code exec(code_obj, self.user_global_ns, self.user_ns) File "<ipython-input-2-fc5979762143>", line 1, in <module> runfile('C:/Users/xieqianyun/demo1/demo1/begin.py', wdir='C:/Users/xieqianyun/demo1/demo1') File "C:\Users\xieqianyun\PyCharm Community Edition 2019.2.5\helpers\pydev\_pydev_bundle\pydev_umd.py", line 197, in runfile pydev_imports.execfile(filename, global_vars, local_vars) # execute the script File "C:\Users\xieqianyun\PyCharm Community Edition 2019.2.5\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile exec(compile(contents+"\n", file, 'exec'), glob, loc) File "C:/Users/xieqianyun/demo1/demo1/begin.py", line 3, in <module> cmdline.execute('scrapy crawl demo'.split()) File "C:\Users\xieqianyun\AppData\Local\Programs\Python\Python36\lib\site-packages\scrapy\cmdline.py", line 145, in execute cmd.crawler_process = CrawlerProcess(settings) File "C:\Users\xieqianyun\AppData\Local\Programs\Python\Python36\lib\site-packages\scrapy\crawler.py", line 267, in __init__ super(CrawlerProcess, self).__init__(settings) File "C:\Users\xieqianyun\AppData\Local\Programs\Python\Python36\lib\site-packages\scrapy\crawler.py", line 145, in __init__ self.spider_loader = _get_spider_loader(settings) File "C:\Users\xieqianyun\AppData\Local\Programs\Python\Python36\lib\site-packages\scrapy\crawler.py", line 347, in _get_spider_loader return loader_cls.from_settings(settings.frozencopy()) File "C:\Users\xieqianyun\AppData\Local\Programs\Python\Python36\lib\site-packages\scrapy\spiderloader.py", line 61, in from_settings return cls(settings) File "C:\Users\xieqianyun\AppData\Local\Programs\Python\Python36\lib\site-packages\scrapy\spiderloader.py", line 25, in __init__ self._load_all_spiders() File "C:\Users\xieqianyun\AppData\Local\Programs\Python\Python36\lib\site-packages\scrapy\spiderloader.py", line 47, in _load_all_spiders for module in walk_modules(name): File "C:\Users\xieqianyun\AppData\Local\Programs\Python\Python36\lib\site-packages\scrapy\utils\misc.py", line 73, in walk_modules submod = import_module(fullpath) File "C:\Users\xieqianyun\AppData\Local\Programs\Python\Python36\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 994, in _gcd_import File "<frozen importlib._bootstrap>", line 971, in _find_and_load File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 665, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 678, in exec_module File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed File "C:\Users\xieqianyun\demo1\demo1\spiders\demo.py", line 4, in <module> from scrapy import log ImportError: cannot import name 'log'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值