urlparse和urlsplit函数: urlparse: url='http://www.baidu.com/s?wd=python&username=abc#1' result=parse.urlparse(url) print(result) 输入的结果为解析之后的各部分 输出对应的参数: url='http://www.baidu.com/s?wd=python&username=abc#1' result=parse.urlparse(url) # print(result)…
常见的反爬手段和解决思路 1)明确反反爬的主要思路 反反爬的主要思路就是尽可能的去模拟浏览器,浏览器在如何操作,代码中就如何去实现;浏览器先请求了地址url1,保留了cookie在本地,之后请求地址url2, 带上了之前的cookie,代码中也可以这样去实现.很多时候,爬虫中携带的headers字段,cookie字段,url参数,post的参数很多,不清楚哪些有用,哪些没用的情况下, 只能够去尝试,因为每个网站都是不相同的;当然在盲目尝试之前,可以参考别人的思路,我们自己也应该有一套尝试的流程.…
requests模块 Requests模块 get方法请求 整体演示一下: import requests response = requests.get("https://www.baidu.com") print(type(response)) print(response.status_code) print(type(response.text)) print(response.text) print(response.cookies) print(response.conte…
本章将介绍使用Selenium和PhantomJS两种工具用来加载动态数据,更多内容请参考:Python学习指南 Selenium Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动化操作,不同是Selenium可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器). Selenium可以根据我们的指令,让浏览器自动加载页面,获取需要的页面,甚至页面截…
本篇主要介绍使用selenium模拟点击下一页,更多内容请参考:Python学习指南 #-*- coding:utf-8 -*- import unittest from selenium import webdriver from selenium.webdriver.common.keys import Keys from bs4 import BeautifulSoup import time class douyuSelenium(unittest.TestCase): #初始化方法 d…
队列-deque 有了上面一节的基础.当然你须要全然掌握上一节的全部方法,由于上一节的方法.在以下的教程中 会重复的用到. 假设你没有记住,请你返回上一节. http://blog.csdn.net/passer_zzy/article/details/47156109 这一节我们要了解一种队列--deque. 在以下的爬虫基础中,我们也要重复的使用deque,来完毕网址 的出队入队. 有了对deque主要的认识,我们開始进一步的学习了解他. colloections.deque([iterab…
HTTP和HTTPS HTTP(HyperText Transfer Protocol,超文本传输协议):是一种发布和接收HTML页面的方法 HTTPS(HyperText Transfer Protocol over Secure Socket Layer)简单讲是HTTP的安全版,在HTTP下加入SSL层. SSL(Secure Socket Layer安全套接层)主要用于web的安全传输协议,在传输层对网络连接进行加密,保障在Internet上数据传输的安全. HTTP的端口号为80 HT…
本章叫介绍如何使用selenium在浏览器中使用js脚本,更多内容请参考:Python学习指南 隐藏百度图片 #-*- coding:utf-8 -*- #本篇将模拟执行javascript语句 from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.Chrome() driver.get('https://www.baidu.com/') #给搜索输入框标…
本篇博客主要用于介绍如何使用selenium+phantomJS模拟登陆豆瓣,没有考虑验证码的问题,更多内容,请参考:Python学习指南 #-*- coding:utf-8 -*- from selenium import webdriver from selenium.webdriver.common.keys import Keys import time #如果获取页面时获取不到文本内容,加入下面参数 driver = webdriver.PhantomJS(service_args=[…
本案例介绍从JavaScript中采集加载的数据.更多内容请参考:Python学习指南 #-*- coding:utf-8 -*- import requests import re import time import json #数据下载器 class HtmlDownloader(object): def download(self, url, params=None): if url is None: return None user_agent = 'Mozilla/5.0 (Wind…