亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

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下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消