scrapy框架爬取网页时
查看网页时查看网络,如果是post数据 就不能直接get
import scrapy,json
class XXXSpider(scrapy.Spider):
name = 'xxx'
allowed_domains = ['域名']
base_url = 'http://www.XXX.com'
def start_requests(self):
# 这是网络post请求里的网址
url = 'xxxxxxxxxxxxxxxxxxxxxxxxxxx'
# 给一个空列表
results = []
# 给一个有限的要爬取的页数
for x in range(1,3):
request = scrapy.FormRequest(
url=url,
# 拿到参数里的表单数据 其中表示有页数的value值设置为str(x)
formdata={
'key1' = 'value1',
'key2' = 'value2',
'key3' = 'value3',
'page' = str(x)
}
# 带上请求头 一般有。。。
headers={
'User-Agent' = 'value',
'Referer' = 'value',
'Cookie' = 'value',
'xxx' = 'xxxx'
}
)
results.append(request)
return results
def parse(self, response):
json_dict = json.loads(response.text)
# 然后可以拿数据了
# 字典取关键值json_dict['']['']['']