from requests import get
from scrapy.selector import Selector
class="box"
表示选取class为box的元素;id="box"
表示选取id为box的元素;*[title]
表示选择所有包含title
属性的元素、a[href]
表示选择所有带有href属性的a元素等;li a
表示选取所有li 下所有a元素;h1 > strong
表示选择父元素为h1 的所有 strong 元素;以a元素来举例说明
response.css('a')
:返回的是selector对象;response.css('a').extract()
:返回的是a标签对象;response.css('a::text').extract_first()
:返回的是第一个a标签中文本的值;response.css('a::attr(href)').extract_first()
:返回的是第一个a标签中href属性的值;response.css('a[href*=image]::attr(href)').extract()
:返回所有a标签中href属性包含image的值;response.css('a[href*=image] img::attr(src)').extract()
:返回所有a标签下image标签的src属性;from requests import get
from scrapy.selector import Selector
html=get("http://book.zongheng.com/showchapter/1079911.html").content.decode("utf-8")
sel=Selector(text=html)
result=sel.css("ul li a::attr(href)").extract()
for x in result:
print(x)
from requests import get
from scrapy.selector import Selector
html=get("http://book.zongheng.com/showchapter/1079911.html").content.decode("utf-8")
sel=Selector(text=html)
result=sel.css("ul li a::attr(href)").extract()
for x in result:
if "1079911" in x:
print(x)
from requests import get
from scrapy.selector import Selector
html=get("http://book.zongheng.com/showchapter/1079911.html").content.decode("utf-8")
sel=Selector(text=html)
result=sel.css("ul li a::attr(href)").extract()
#由于防止被封ID,故而测试的时候只访问前两个
count=3
for x in result:
if "1079911" in x:
count -= 1
if count==0:
break
html=get(x).content.decode("utf-8")
sel=Selector(text=html)
title=sel.css("div.title_txtbox::text").extract()[0]
print(title)
info=sel.css("div.content p::text").extract()
for j in info:
print(j)
由于创建文件不能创建特殊符号,所以将【:】替换成了【_】
from requests import get
from scrapy.selector import Selector
html=get("http://book.zongheng.com/showchapter/1079911.html").content.decode("utf-8")
sel=Selector(text=html)
result=sel.css("ul li a::attr(href)").extract()
#由于防止被封ID,故而测试的时候只访问前两个
count=3
for x in result:
if "1079911" in x:
count -= 1
if count==0:
break
html=get(x).content.decode("utf-8")
sel=Selector(text=html)
title=sel.css("div.title_txtbox::text").extract()[0]
title=title.replace(":","_")
info=sel.css("div.content p::text").extract()
strInfo=""
for j in info:
strInfo+=j
file=open(str.format("{0}{1}",title,".txt"),"w",encoding="utf-8")
file.write(strInfo)
file.close()
from requests import get
from scrapy.selector import Selector
import time
import random
html=get("http://book.zongheng.com/showchapter/1079911.html").content.decode("utf-8")
sel=Selector(text=html)
result=sel.css("ul li a::attr(href)").extract()
for x in result:
if "1079911" in x:
html=get(x).content.decode("utf-8")
sel=Selector(text=html)
title=sel.css("div.title_txtbox::text").extract()[0]
title=title.replace(":","_")
info=sel.css("div.content p::text").extract()
strInfo=""
for j in info:
strInfo+=j
file=open(str.format("{0}{1}",title,".txt"),"w",encoding="utf-8")
file.write(strInfo)
file.close()
#每次操作完休息1~3s
timeStop=random.randint(1,4)
time.sleep(timeStop)
print("完成",title)
等了好久。。。如下如:
a)、CSS选择器的用法千变万化,只有多用才能熟能生巧。
b)、个人建议自己多找几个网站,多试试各种各样的CSS选择器截取需要的信息。
欢迎【点赞】、【评论】、【关注】、【收藏】、【打赏】,为推广知识贡献力量。