我参加了Data Camp的Python网页抓取课程,并尝试在我自己的环境中运行“capstone”网页抓取器(该课程在一个特殊的浏览器环境中进行)。代码旨在从Data Camp网页上抓取课程的标题和描述。
我已经花了很多时间在这里和那里修修补补,在这一点上,我希望社区可以帮助我。
我尝试运行的代码是:
# Import scrapy
import scrapy
# Import the CrawlerProcess
from scrapy.crawler import CrawlerProcess
# Create the Spider class
class YourSpider(scrapy.Spider):
name = 'yourspider'
# start_requests method
def start_requests(self):
yield scrapy.Request(url= https://www.datacamp.com, callback = self.parse)
def parse (self, response):
# Parser, Maybe this is where my issue lies
crs_titles = response.xpath('//h4[contains(@class,"block__title")]/text()').extract()
crs_descrs = response.xpath('//p[contains(@class,"block__description")]/text()').extract()
for crs_title, crs_descr in zip(crs_titles, crs_descrs):
dc_dict[crs_title] = crs_descr
# Initialize the dictionary**outside**of the Spider class
dc_dict = dict()
# Run the Spider
process = CrawlerProcess()
process.crawl(YourSpider)
process.start()
# Print a preview of courses
previewCourses(dc_dict)
我得到以下输出:
C:/用户/main.pywww.datacamp.com 语法无效
进程已结束,退出代码为1
我注意到第20行中的parse
方法在PyCharm窗口中仍然是灰色的。
任何帮助让代码运行将不胜感激!
谢谢你的好意,
- -狼鹰
1条答案
按热度按时间6yjfywim1#
错误消息在以下行中触发:
作为
url
的输入,您应该输入一个字符串,字符串的开头和结尾都写有'
或"
。试试看:
如果这是你的完整代码,你还缺少函数
previewCourses
。检查是否提供给你,或者你自己写一个类似这样的代码: