老师,您好!
我做爬取知乎和拉勾网信息的练习时,有一个问题:
1.问题出现在爬取知乎网的时候:
用selenium模拟登录知乎后,我得到知乎首页的response,开始爬取,然后,我只能爬到6条问题的url,如下代码截图,但知乎首页的问题的url一定不止是6条。
2.问题出现在爬取拉勾网的时候:
用crawl爬取拉勾时,我配置的rule如下:
rules = (
Rule(LinkExtractor(allow=("zhaopin/Python/.*",)),callback='parse_job'),
)
def parse_job(self, response):
myItemLoader = ItemLoader(item=LagouItem(), response=response)
myItemLoader.add_css("title", ".p_top h3::text")
myItemLoader.add_css("address", ".p_top span.add em::text")
myItemLoader.add_css("salary", ".p_bot span::text")
myItemLoader.add_css("company", ".company_name a::text")
myItem = myItemLoader.load_item()
# 第一次得到的item是一个个列表,titlelist,addresslist,salarylist和companylist
list_title = myItem["title"]
list_address = myItem["address"]
list_salary = myItem["salary"]
list_company = myItem["company"]
# 再创建第二个item2,每次循环都yield出去,让pipeline执行保存,这样就可以做到一一对应地保存职位信息
num = len(list_title)
myItem2 = LagouItem()
for i in range(num):
myItem2["title"] = list_title[i]
myItem2["address"] = list_address[i]
myItem2["salary"] = list_salary[i]
myItem2["company"] = list_company[i]
yield myItem2
我在parse_job里面用Itemloader对item进行爬取和加载,但只能得到15条信息。
不管是存到mysql, csv或者json文件中,都只有15条job信息。
老师,您比较有经验,知道这是哪里的问题吗?
谢谢!
带你彻底掌握Scrapy,用Django+Elasticsearch搭建搜索引擎
了解课程