为了账号安全,请及时绑定邮箱和手机立即绑定

python小知识点随手记

使用脚本启动 scrapy 爬虫

from scrapy.cmdline import execute

import sys
import os
print(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
execute(["scrapy","crawl","douban"])
# setting --> ROBOTSTXT_OBEY = False

爬虫分析HTML源码时

在使用 Chrome 浏览器复制的 xpath 时,网页可能会加载其他标签。导致浏览器获取的 xpath 是无效的。
对于 p 标签的 text 是无法获取到全部 text 的,因为他无法识别节点。

scrapy 获取HTML数据

xpath 方法使用之一:
包含,class 中 包含 vote-post-up 这个 class 的标签

response.xpath('//soan[contains('@class','vote-post-up')]')

css 方法使用之一:
同上:过个 class 中,选取 vote-post-up 底下的 h10 标签的文本

response.css('.vote-post-up h10::text')
resposne.css('a[href='#article'] span::text')

获取属性值:

response.css('a::attr(href)')

两个 class 同时获取

response.css('.a.b')
extract_first("") # 若返回值为空,则返回默认值 ""

scrapy 传值给回调函数

meta={"key":"val"}
response.meta.get('key','')

判断是否为 unicode

if isinstance("",str):
    print("unicode")

pipeline 注意点

在处理完 item 的时候,一定要 return 回去

调用 scrapy 官方的 imgpipeline


class ImgPipeline2(ImagesPipeline):# 他处理完毕之后,会传递给下一个 pipeline
    def item_completed(self, results, item, info):
        for ok,value in results:
            img_file_path = value["path"]
        item['img_file_path'] = img_file_path
        return item

存储 cookie


import http.cookiejar as cookielib

import requests

session = requests.session()
session.cookies = cookielib.LWPCookieJar(filename='cookie.txt')
# session.get('http://www.baidu.com')
# session.cookies.save()

# 是否允许重定向
session.get('url', allow_redirects=False)

# 加载 cookie
session.cookies.load(ignore_discard=True)
print(session.cookies)

正则匹配,匹配多行

re.math("","pattarm",re.DOTALL)
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消