文章目录
备注,本文说的脚本图片不下载,采用的是保存src链接
Elements 选择器
·例如 response.doc('a.title')
检索到的标签就是<a class ="tltle" >
`
type()
from pyquery import PyQuery as pq
doc = pq(url='http://www.baidu.com')
print(type(doc))
得到的结果为 <class 'pyquery.pyquery.PyQuery'>
,属于type类型,而其他类似response.doc()
获取的均为HtmlElement
类型,可使用type()
转换
`
pyspider脚本结构介绍
from pyspider.libs.base_handler import *
class Handler(BaseHandler):
crawl_config = {
#配置
}
@every(minutes=24 * 60) #活动周期 24*60minutes
def on_start(self): #脚本入口
self.crawl('crawl_url', callback=self.index_page) #callback调用index_page
@config(age=10 * 24 * 60 * 60)
def index_page(self, response):
#response.doc获取htmlElement 括号内可使用css选择
for each in response.doc('a[href^="http"]').items():
self.crawl(each.attr.href, callback=self.detail_page)
@config(priority=2)
def detail_page(self, response):
return {
"url": response.url,
"title": response.doc('title').text(),
}
·
text() 跟 html()的区别
luoyu6 JQuery中的text(),html()和val()区别
text() 只输出标签内的文本内容
html() 输出的结果会带有标签
H
·
脚本登录
表单登录
import requests
#发送表单登录
payload = {
'username':'xx', 'password':'xx'}
r = s.post('url', data = payload)
print(r.content)
s = requests.session()
print(s.get('request_url').content)
cookie登录
s.get('http://xxxxx/login', cookies={
"token": "xxx"}).content
crawl_config = {